我正在用C#开发一个小型服务器应用程序,它应该提供VT100/ANSI终端接口(通过telnet或调制解调器)。
我正在做一些关于VT100/ANSI的研究,我读得越多,我就越困惑。我想实现一个简单的解析器来处理ansi转义/控制序列,但规范中包含了许多可能的命令。基本上,我的问题可以归结为:
1)如果我处理基于telnet的客户端(如putty)或简单的拨号程序(如minicom或超级终端),我应该执行哪些命令。我敢肯定,在这些应用程序中,很多转义序列根本没有使用或忽略。
2)是否只需要处理以ESC字符为前缀的C0控制字符?或者当我在正常的文本序列中遇到它们时?我不能从文档中获得这一关键信息。
3)我应该关心私有控制序列吗?
提前谢谢你,
杰伦。
发布于 2012-03-23 05:45:31
在任何情况下,您都必须检测转义序列;但是,您不需要解释所有的转义序列,但至少您应该能够跳过它们。
例如,Esc[5m打开闪烁模式。如果您想忽略此模式,只需跳过"Esc[5m"。
我不认为C0控制字符以ESC为前缀。
我从来没有遇到过这些私有的控制序列。等着看它们是否被使用了。实现一些可能永远不会被使用的东西是没有意义的。
https://stackoverflow.com/questions/9830251
复制相似问题