但行好事
莫论前程❤

vim脱字符表示法–打开日志文件看到^@字符

空字符

(ascii 码 0,在程序里一般写作”\0″)

'\0'是不可见字符,使用vim编辑器查看的文本文件中如果包含'\0'字符,vim会自动将'\0'字符转换为^@字符。

vim脱字符表示法

ASCII 0-31 部分的所有字符都是控制字符,不是可显示字符。为了在vim中显示出这些字符,将这些字符的编码加上 64 之后对应的全部为可打印字符,于是将 0-31 位置的字符,

^ 跟转换之后对应的那个字符绑在一起当作一个字符显示出来,既简洁又实用,——是为“脱字符表示法”。

如:0x00对应^@ (0+64)0x0D(回车)对应^M (13+64)等等

详细的列表可以通过在vim中 :help digraph-table 命令查看,具体如下(只列出了前33个)

official name括号中的缩写对应ASCII表前33位控制字符的缩写

char  digraph   hex     dec     official name ~
^@      NU      0x00      0     NULL (NUL)  空字符
^A      SH      0x01      1     START OF HEADING (SOH) 标题开始
^B      SX      0x02      2     START OF TEXT (STX) 本文开始
^C      EX      0x03      3     END OF TEXT (ETX) 本文结束
^D      ET      0x04      4     END OF TRANSMISSION (EOT) 传输结束
^E      EQ      0x05      5     ENQUIRY (ENQ) 请求
^F      AK      0x06      6     ACKNOWLEDGE (ACK) 确认回应
^G      BL      0x07      7     BELL (BEL) 响铃
^H      BS      0x08      8     BACKSPACE (BS) 退格
^I      HT      0x09      9     CHARACTER TABULATION (HT) 水平定位符号
^@      LF      0x0a     10     LINE FEED (LF) 换行键
^K      VT      0x0b     11     LINE TABULATION (VT) 垂直定位符号
^L      FF      0x0c     12     FORM FEED (FF) 换页键
^M      CR      0x0d     13     CARRIAGE RETURN (CR)  归位键/回车
^N      SO      0x0e     14     SHIFT OUT (SO) 取消变换
^O      SI      0x0f     15     SHIFT IN (SI) 启用变换
^P      DL      0x10     16     DATALINK ESCAPE (DLE) 跳出数据通讯
^Q      D1      0x11     17     DEVICE CONTROL ONE (DC1) 设备控制一 
^R      D2      0x12     18     DEVICE CONTROL TWO (DC2) 设备控制二
^S      D3      0x13     19     DEVICE CONTROL THREE (DC3) 设备控制三
^T      D4      0x14     20     DEVICE CONTROL FOUR (DC4) 设备控制四
^U      NK      0x15     21     NEGATIVE ACKNOWLEDGE (NAK) 确认失败回应
^V      SY      0x16     22     SYNCHRONOUS IDLE (SYN) 同步用暂停
^W      EB      0x17     23     END OF TRANSMISSION BLOCK (ETB)区块传输结束
^X      CN      0x18     24     CANCEL (CAN) 取消
^Y      EM      0x19     25     END OF MEDIUM (EM) 连接介质中断
^Z      SB      0x1a     26     SUBSTITUTE (SUB) 替换
^[      EC      0x1b     27     ESCAPE (ESC) 跳出
^\      FS      0x1c     28     FILE SEPARATOR (IS4) 文件分割符
^]      GS      0x1d     29     GROUP SEPARATOR (IS3) 组群分隔符
^^      RS      0x1e     30     RECORD SEPARATOR (IS2) 记录分隔符
^_      US      0x1f     31     UNIT SEPARATOR (IS1) 单元分隔符
        SP      0x20     32     SPACE 
................

2.文件转换命令

  • dos2unix

  • unix2dos

赞(0) 打赏
未经允许不得转载:刘鹏博客 » vim脱字符表示法–打开日志文件看到^@字符
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏