Windowsで生成されたテキストファイルは、各行の末尾に `^ M `で終わります。

Windowsで生成されたテキストファイルは、各行の末尾に `^ M `で終わります。

UnixでWindowsメモ帳で作成したテキストファイルを開くと、^Mどこかに新しい行があることがわかる理由がわかります。

私が理解したように、Windowsでは各行が\r\nASCIIで0x0D0A終わり^M、ASCII値があります0x5E4D。 2つを接続できません。

答え1

行末が重要だと言うのは正しいです。どちらのオペレーティングシステムも行が "\n"で終わると予想していますが、Windowsも行の前に "\ r"を追加し、Unixはそれを期待しません。プログラムは独自の方法で「\ r」を出力します。

ファイルは実際には「^」と「M」の文字で終わらず、印刷できない文字を表す一般的な方法にすぎません。プログラムはAと1で始まり、「^」とそのバイト値に対応する文字を出力します。 M は 13 番目の文字で、 '\r' は ASCII コード 13 (または言うように 0xD) なので "^"m" が表示されます。

関連情報