最ASCII控制字符过时了吗?

问题描述 投票:1回答:2

最下\ X20的ASCII码的出现是完全过时。他们全部在今天使用的?他们可以被认为是“待价而沽”,或者是它最好避免呢?

我需要一个分隔符分组“线”在一起,那就肯定是不错的增选这些用于该目的之一。

man ascii

    Oct   Dec   Hex   Char                        
    ----------------------------------------------
    000   0     00    NUL '\0'                    
    001   1     01    SOH (start of heading)      
    002   2     02    STX (start of text)         
    003   3     03    ETX (end of text)           
    004   4     04    EOT (end of transmission)   
    005   5     05    ENQ (enquiry)               
    006   6     06    ACK (acknowledge)           
    007   7     07    BEL '\a' (bell)             
    010   8     08    BS  '\b' (backspace)        
    011   9     09    HT  '\t' (horizontal tab)   
    012   10    0A    LF  '\n' (new line)         
    013   11    0B    VT  '\v' (vertical tab)     
    014   12    0C    FF  '\f' (form feed)        
    015   13    0D    CR  '\r' (carriage ret)     
    016   14    0E    SO  (shift out)             
    017   15    0F    SI  (shift in)              
    020   16    10    DLE (data link escape)      
    021   17    11    DC1 (device control 1)      
    022   18    12    DC2 (device control 2)      
    023   19    13    DC3 (device control 3)      
    024   20    14    DC4 (device control 4)      
    025   21    15    NAK (negative ack.)         
    026   22    16    SYN (synchronous idle)      
    027   23    17    ETB (end of trans. blk)     
    030   24    18    CAN (cancel)                
    031   25    19    EM  (end of medium)         
    032   26    1A    SUB (substitute)            
    033   27    1B    ESC (escape)                
    034   28    1C    FS  (file separator)        
    035   29    1D    GS  (group separator)       
    036   30    1E    RS  (record separator)      
    037   31    1F    US  (unit separator)        
    040   32    20    SPACE                       
ascii delimiter control-characters
2个回答
2
投票

首先最容易的部分:有最现代化的系统没有网络传输的担忧。当前的协议处理几乎所有的数据 - 无论是7位ASCII,8位ASCII,Unicode字符,图像数据或编译的程序 - 为二进制数据。这并非一直如此。许多旧系统有控制权转码和其他“不可打印”的字符,特别是问题,8位数据的问题。但是,那些日子,幸运的是,在我们背后。一个大例外是,如果你希望能够通过HTML形式复制/粘贴数据 - 对于要离开了所有的控制代码和其他有趣的东西。

当然,你可以的,使格式任何你喜欢的。然而,一些字符仍使用相当频繁:

000   0     00    NUL '\0' - does "nothing" but is hard for some text editors to handle
003   3     03    ETX (end of text) - Control-C - "break" in a lot of systems
007   7     07    BEL '\a' (bell) - Still makes a bell sound.
011   9     09    HT  '\t' (horizontal tab) - A lot of text editors and file formats use this to set a fixed number of spaces
012   10    0A    LF  '\n' (new line) - like it says
015   13    0D    CR  '\r' (carriage ret) - used instead of, or together with \n on many systems
021   17    11    DC1 (device control 1) - Control-Q - Resume transmission - XON
023   19    13    DC3 (device control 3) - Control-S - Pause transmission - XOFF
033   27    1B    ESC (escape) - Used for PCL and other printer control codes and plenty of other things 

一切是相当多的争夺。我要特别避免NUL和XON / XOFF - 他们有时很难进入到一个文件 - 和BEL因为BEL键入一个文件可以是嘈杂。

如果你有一个真正的二进制格式,那么你可以做任何你想要的。但是,如果你想有一个大部分人可读的格式,然后限制控制代码是一个好主意。


0
投票

位模式 - 也就是数字化的数值 - 没有过时。 ASCII控制码的标签反映表现出在不同的语境下的用途 - 串行通信,文本显示和打印,命令行编辑等更好的文字处理器和文本编辑们使用的所有这些代码在他们的键盘命令套,甚至更早让所有的人都被插入的文件,自20世纪70年代,也许。这种方案是注意不要将这些代码直接发送到屏幕上;他们解释新行和制表符,有时别人,显示一切象征,在插入符号符号(“^ A”为SOH,例如)或下划线或括号字符。当然,避免ESC和上面提到的其他几个人,如果你是怕用户将猫您的文件到屏幕上。否则,随意使用。

很久以前,我修补的WordStar根据需要进行时,它把我的点阵打印机进入图形模式。使用WordStar的,任何7位代码在所有可能被放入图形数据。工作就像一个魅力。

© www.soinside.com 2019 - 2024. All rights reserved.