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

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

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

我的理解是,在Windows中,每一行都以 结尾\r\n,即 0x0D0AASCII,而^M有ASCII值0x5E4D。我无法将这两者联系起来。

答案1

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

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

相关内容