元のアドレス: クリックしてリンクを開きます
今日、Yuanzi のホームページにあるブログ投稿を見ました - Unicode と UTF-8 についての簡単な雑談で、そこから UTF-8 が Unicode の実装方法であることを知りました。
Unicode は、世界中のすべての文字が統一された 2 進数を指定するためのものであり、プログラムがそれを格納および解析する方法を指定するものではありません。
UTF-8 は Unicode 実装方法の 1 つであると言えます...
この収穫物をフラッシュ メモリに記録するとき、@飞鸟_Asuka は返信で良い質問をしました:「エンコード方法を選択するときUnicode と utf8 が 2 つの別個のオプションであるのはなぜですか? UTF-8 が Unicode の実装メソッドである場合、C# ではなぜ Encoding.Unicode が UTF8 と並行してエンコード メソッドとして使用されるのでしょうか?
その後スタックオーバーフローで答えが見つかりました:
Windows はいわゆる「Unicode」文字列を UTF-16 文字列として処理しますが、最近のほとんどの UNIX はデフォルトで UTF-8 を使用していることがわかりました。 Windows は UTF-16 なので、C# の Encoding.Unicode は UTF-16 です。System.Text.Encoding.Unicode のコメントもこれを証明しています:
// // Summary: // Gets an encoding for the UTF-16 format using the little endian byte order. // // Returns: // An encoding for the UTF-16 format using the little endian byte order.public static Encoding Unicode { get; }