質問: LinuxとWindowsの.txtファイルの違いは何ですか(Unicodeエンコーディング) 元のANSI規格で定義されている128文字セットのみを使用しています。 しかし、全体としてファイルはどのように異なる方法で含意されていますか。 表示には関係ありません。つまり、タブが6文字または8文字で表示されていて、メモリ内の実際の内部表現が表示されている場合 私が聞いた違いの1つは、\ r \ n(Windows)と\ n(\ n)の行末処理の使用です。
回答: 使用されているUnicodeエンコードはOSベースではありません。 Windowsのnotepad.exeでもオプションがリストされています - (メモ帳の意味を括弧で囲みます) ANSI(Unicode以外)、Unicode(メモ帳はUnicode LEを意味します)、Unicodeビッグエンディアン(BE)、UTF-8 ANSIはそれが非常に限られた数の文字を含むユニコードではないのでそれを脇に置いてみましょう。 しかし、メモ帳でもLE、BE、またはUTF-8を実行できることを確認してください。 そしてメモ帳は別にして、UTF-8はBOMの有無にかかわらずある場合もあります。 そして私はWindowsをCygwinと一緒に使いますが、Windowsのポートはあなたが指定したとしてもうまくいくでしょう。 特定のOSがどのUnicodeエンコーディングを使用するかについての規則はありません。あるとすれば、それほど柔軟なOSではないでしょう。 違いが本当にソフトウェアを知っているのを見るために、ソフトウェアの一部を使用することまたは提供すること。 Cygwinとxxd、あるいは16進エディタを入手して、ファイルの中身を見てください。ファイルを識別しやすくするために 'file'コマンドを使用してください。それで、あなたは実際にUTF 16bit LEが何であるかを見ます。 UTF 16bit BEとは何ですか。 UTF-8とは何ですか(UTF-8はBOMの有無にかかわらず)。 時々あなたはユニコードとして保存するようにメモ帳に指示することができます(それによって、メモ帳はユニコード16ビットリトルエンディアンを意味します)、そしてそれはしません。しかし、arial unicodeのようなunicodeフォントを選び、charmapからいくつかのunicode文字をコピーすればそれができます。 ``` C:\asdf>notepad.exe a.a C:\asdf>file a.a a.a; Little-endian UTF-16 Unicode text, with no line terminators C:\asdf>type a.a aaa慡ൡ <-- though displayed aaa followed by some boxes in my cmd window C:\asdf> C:\asdf>xxd a.a 0000000: fffe 6100 6100 6100 6161 610d ..a.a.a.aaa. C:\asdf> ^^ The portion of the byte that stores the 61 is the lower value portion which with LE is stored first. ``` ddコマンド(私はウィンドウズの中でcygwinから走る* nixコマンド)はそれを切り替えることができます ``` C:\asdf>xxd -p a.a fffe6100610061006161610d C:\asdf>file a.a a.a; Little-endian UTF-16 Unicode text, with no line terminators C:\asdf>dd if=a.a conv=swab of=a.a2 0+1 records in 0+1 records out 12 bytes (12 B) copied, 0 seconds, Infinity B/s C:\asdf>type a.a2 a a a aaa C:\asdf>xxd -p a.a2 feff00610061006161610d61 C:\asdf>file a.a2 a.a2; Big-endian UTF-16 Unicode text, with no line terminators C:\asdf> ``` そしてメモ帳自体はUTF-16ビッグエンディアンまたはUTF-16リトルエンディアンまたはUTF-8として保存できます !enter image description here あなたが技術者、あるいは単なるメモ帳ユーザーであるならば、あなたはあなたのOSのために一つのエンコーディングに縛られていません! 私はUTF-8がUTF-16よりも理にかなっていると思います、UTF-16は8ビットしか必要としない文字に対しても16ビットを使用します。また、charmapはUTF-16コードを示していることにも注意してください。 Sublime(Windowsテキストエディタ)はデフォルトでUnicodeをUTF-8として保存します。 私はWindowsを使い、時にはUnicodeを使いますが、私はほとんどUTF-8を使っています。 そして、Windowsは技術的に柔軟なので、Linuxも少なくとも技術的に柔軟です。