Character-Encoding

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

  • July 30, 2011

我想知道為什麼如果你在unix下打開一個用Windows記事本製作的文本文件,你會發現它^M應該有一個新行?

我的理解是,在 Windows 中,每一行都以 結尾\r\n,即 0x0D0AASCII,而^M具有 ASCII 值0x5E4D。我無法將這兩者從一個與另一個聯繫起來。

你說得對,行尾很重要。兩個作業系統都希望該行以“\n”結尾,但 Windows 還在 unix 不期望之前添加了一個“\r”,因此 unix 程序將以自己的方式輸出“\r”。

該文件實際上並不以兩個字元“^”和“M”結尾,這只是表示不可列印字元的常用方法。程序會輸出“^”和一個對應字節值的字母,以A開頭表示1。M是第13個字母,’\r’是ASCII碼13(或0xD,如你所說),所以你看到“^米"

引用自:https://unix.stackexchange.com/questions/17647