我正在用C#编写一个telnet应用程序(用于脚本化旧式BBS系统上的门游戏,例如Wildcat),但似乎无法构建可工作的ANSI转义码解析器(例如光标移动、着色等) - 我测试过的几乎所有系统都发送未定义的序列,这些序列违反了任何“标准”。关于此问题似乎也很少有资源,维基百科是我找到的最详细的列表,但即使他们也说它不完整 - 我遇到的大多数其他网站只是复制/粘贴了维基百科的文章。
我的问题是:是否存在相关库?如果没有,那么是否有一些解析代码/正则表达式?至少对于像ESC[!_
之类的东西的适当文档将非常有帮助。
我真的觉得自己在重新发明轮子,特别是考虑到Telnet在年龄方面更或多或少相当于互联网上的轮子(;
编辑:添加了一个怪异性的示例:
00000075h: 1B 5B 73 1B 5B 32 35 35 42 1B 5B 32 35 35 43 08 ; .[s.[255B.[255C.
00000085h: 5F 1B 5B 36 6E 1B 5B 75 1B 5B 21 5F 02 02 3F 48 ; _.[6n.[u.[!_..?H
00000095h: 54 4D 4C 3F 1B 5B 30 6D 5F 1B 5B 32 4A 1B 5B 48 ; TML?.[0m_.[2J.[H
000000a5h: 0C 0D 0A ; ...
The mysterious part is '21' in line 2 ---^^