Windows下生成的每行文本文件末尾的`^M`

Tim*_*Tim 11 character-encoding

我想知道为什么如果你在 unix 下打开一个在 Windows 记事本中制作的文本文件,你会发现它^M应该有一个新行?

我的理解是,在 Windows 中,每一行都以 结束\r\n,即 0x0D0A在 ASCII 中,而^M具有 ASCII 值0x5E4D。我无法将这两者一一关联。

Mic*_*zek 20

你是对的,行尾很重要;两个操作系统都希望该行以“\n”结尾,但 Windows 还在 unix 不期望的之前添加了一个“\r”,因此 unix 程序将以自己的方式输出“\r”。

该文件实际上并不以“^”和“M”这两个字符结尾,这只是表示不可打印字符的常用方法。程序会输出“^”和一个对应字节值的字母,从A开始代表1。M是第13个字母,'\r'是ASCII码13(或0xD,如你所说),所以你看到“^米”

  • 您可以使用命令行实用程序 `dos2unix` 和 `unix2dos` 在格式之间转换文本文件。 (7认同)
  • 这也是 Ctrl-M 的简写,这是您使用键盘获取该字符的方式。 (2认同)