【问题标题】:What is this file format that telnet is using?telnet 使用的是什么文件格式?
【发布时间】:2018-09-14 00:04:07
【问题描述】:

我一直在构建一个telnet客户端,它可以成功地从服务器发送和接收消息。

但是,当接收到数据时,由于文本格式,输出无法正确显示。

Example output:

[2J[2;1H[2;1H[1;30;47mMain menu
[3;1H[0;37;40m1[3;3HStock[3;9HBooking
[4;1H[1;30;47m2 Despatch
[5;1H[0;37;40m3[5;3HProduction[5;14HIssues
[6;1H4[6;3HProduction[6;14HReturns
[7;1H5[7;3HVoid[7;8Hbatch
[8;1H6[8;3HArea[8;8HTransfer
[9;1H7[9;3HUnit[9;8HIssue
[10;1H8[10;3HOrder[10;9HLabel[10;15HPrint
[11;1H9[11;3HDry[11;7HGoods

[13;1H[1;30;47mPrt: <not set>[1;1H

I want it to look like this:
Main menu
1StockBooking
2Despatch
3ProductionIssues
4ProductionReturns
5Voidbatch
6AreaTransfer
7UnitIssue
8Order

LabelPrint9DryGoodsPrt: <not set>

有什么想法可以使用什么格式,以便我可以将库转换为纯文本?

【问题讨论】:

    标签: sockets formatting telnet


    【解决方案1】:

    由于使用了不可打印的字符,因此您无法直观地看到一些额外的格式。您显示的文字实际上是这样的:

    ^[2J^[2;1H^[2;1H^[1;30;47mMain menu^
    [3;1H^[0;37;40m1^[3;3HStock^[3;9HBooking^
    [4;1H^[1;30;47m2 Despatch^
    [5;1H^[0;37;40m3^[5;3HProduction^[5;14HIssues^
    [6;1H4^[6;3HProduction^[6;14HReturns^
    [7;1H5^[7;3HVoid^[7;8Hbatch^
    [8;1H6^[8;3HArea^[8;8HTransfer^
    [9;1H7^[9;3HUnit^[9;8HIssue^
    [10;1H8^[10;3HOrder^[10;9HLabel^[10;15HPrint^
    [11;1H9^[11;3HDry^[11;7HGoods^
    
    [13;1H^[1;30;47mPrt: <not set>^[1;1H
    

    (我正在使用 ^ 直观地向您展示 0x1B 字节 - ASCII ESC 字符 - 存在于您发布的内容中。)

    每个格式化命令都以ESC 为前缀,后跟'[' 字符和参数数据,然后是显示文本。

    您发布的文字按以下顺序排列:

    ^[2J ^[2;1H ^[2;1H ^[1;30;47m 主菜单 ^[3;1H ^[0;37;40m 1 ^[3;3H 库存 ^[3;9H 预订 ^[4;1H ^[1;30;47m 2 发货 ^[5;1H ^[0;37;40m 3 ^[5;3H 生产 ^[5;14H 问题 ^[6;1H 4 ^[6;3H 生产 ^[6;14H 退货 ^[7;1H 5 ^[7;3H 空白 ^[7;8H 批 ^[8;1H 6 ^[8;3H 区域 ^[8;8H 转移 ^[9;1H 7 ^[9;3H 单元 ^[9;8H 问题 ^[10;1H 8 ^[10;3H 命令 ^[10;9H 标签 ^[10;15H 打印 ^[11;1H 9 ^[11;3H 干燥 ^[11;7H 商品 ^[13;1H ^[1;30;47m Prt: ^[1;1H

    看到涉及ESC,我找到了以下文章,完全与您发布的内容相符:

    ANSI/VT100 Terminal Control Escape Sequences

    最终细分如下:

    擦除屏幕 光标主页:行=2,列=1 光标主页:行=2,列=1 设置属性模式:明亮,前景=黑色,背景=白色 输出:“主菜单” 光标主页:行=3,列=1 设置属性模式:重置,前景=白色,背景=黑色 输出:“1” 光标主页:行 = 3,列 = 3 输出:“股票” 光标主页:行 = 3,列 = 9 输出:“预订” 光标主页:行=4,列=1 设置属性模式:明亮,前景=黑色,背景=白色 输出:“2 派遣” 光标主页:行=5,列=1 设置属性模式:重置,前景=白色,背景=黑色 输出:“3” 光标主页:行 = 5,列 = 3 输出:“生产” 光标主页:行 = 5,列 = 14 输出:“问题” 光标主页:行 = 6,列 = 1 输出:“4” 光标主页:行=6,列=3 输出:“生产” 光标主页:行=6,列=14 输出:“返回” 光标主页:行=7,列=1 输出:“5” 光标主页:行 = 7,列 = 3 输出:“虚空” 光标主页:行=7,列=8 输出:“批次” 光标主页:行=8,列=1 输出:“6” 光标主页:行=8,列=3 输出:“区域” 光标主页:行=8,列=8 输出:“转移” 光标主页:行=9,列=1 输出:“7” 光标主页:行 = 9,列 = 3 输出:“单位” 光标主页:行=9,列=8 输出:“问题” 光标主页:行=10,列=1 输出:“8” 光标主页:行=10,列=3 输出:“订单” 光标主页:行=10,列=9 输出:“标签” 光标主页:行=10,列=15 输出:“打印” 光标主页:行=11,列=1 输出:“9” 光标主页:行=11,列=3 输出:“干” 光标主页:行=11,列=7 输出:“货物” 光标主页:行=13,列=1 设置属性模式:明亮,前景=黑色,背景=白色 输出:“Prt:” 光标主页:行=1,列=1

    在终端屏幕上打印时看起来像这样:

    【讨论】:

      猜你喜欢
      • 2010-12-27
      • 2013-07-14
      • 1970-01-01
      • 2011-03-22
      • 2014-01-20
      • 2011-12-29
      • 2011-06-07
      • 2012-09-20
      • 1970-01-01
      相关资源
      最近更新 更多