UnixでWindowsメモ帳で作成したテキストファイルを開くと、^M
どこかに新しい行があることがわかる理由がわかります。
私が理解したように、Windowsでは各行が\r\n
ASCIIで0x0D0A
終わり^M
、ASCII値があります0x5E4D
。 2つを接続できません。
答え1
行末が重要だと言うのは正しいです。どちらのオペレーティングシステムも行が "\n"で終わると予想していますが、Windowsも行の前に "\ r"を追加し、Unixはそれを期待しません。プログラムは独自の方法で「\ r」を出力します。
ファイルは実際には「^」と「M」の文字で終わらず、印刷できない文字を表す一般的な方法にすぎません。プログラムはAと1で始まり、「^」とそのバイト値に対応する文字を出力します。 M は 13 番目の文字で、 '\r' は ASCII コード 13 (または言うように 0xD) なので "^"m" が表示されます。