私は最近、Unicode についてすべて読んでいます。なぜなら、それがどのように機能するかは非常に興味深いからです。
だから私はそれUTF-32
が固定の4バイトであることを読みました。奇妙だと思いました。両方の MacBook Air で、1 文字 (t) の単純なファイルを保存すると、8 バイトで保存されました。これは で発生しUTF-16
、4 バイトを占めました (奇妙ではありませんが)。理由を知っている人はいますか?
注:確認しましたが、空白はありません
私は最近、Unicode についてすべて読んでいます。なぜなら、それがどのように機能するかは非常に興味深いからです。
だから私はそれUTF-32
が固定の4バイトであることを読みました。奇妙だと思いました。両方の MacBook Air で、1 文字 (t) の単純なファイルを保存すると、8 バイトで保存されました。これは で発生しUTF-16
、4 バイトを占めました (奇妙ではありませんが)。理由を知っている人はいますか?
注:確認しましたが、空白はありません
文字の前のファイルの先頭にUTF BOMが保存されている可能性が最も高いt
です。BOM は、ファイルのエンコードに使用されている UTF エンコーディングを指定するために使用され、UTF-16 および UTF-32 の場合は、どのエンディアンが使用されているかを指定します。
UTF-16LE: BOM (2 バイト) + t
(2 バイト) = 4 バイト
FF FE
74 00
UTF-16BE: BOM (2 バイト) + t
(2 バイト) = 4 バイト
FE FF
00 74
UTF-32LE: BOM (4 バイト) + t
(4 バイト) = 8 バイト
FF FE 00 00
74 00 00 00
UTF-32BE: BOM (4 バイト) + t
(4 バイト) = 8 バイト
00 00 FE FF
00 00 00 74