確認結果
・ UTF-8は8bit単位で情報を並べるため、エンディアン問題は存在しない。[参考 1]
・ System.Text.Encoding.UTF8.GetBytesメソッドによる、文字列からバイト配列への変換時にはBOM(Byte Order Mark)は付かない。[参考 2]
(StreamWriterのエンコーディングパラメタでSystem.Text.Encoding.UTF8を指定した場合いはBOMが付与される。UTF8のBOMは0xEF 0xBB 0xBF)[参考 2,3]
以下のコードで[txt_sendMessage.Text = “あ”]をUDPで送信。
1 2 |
byte[] sendBytes = new byte[] { }; sendBytes = System.Text.Encoding.UTF8.GetBytes(txt_sendMessage.Text); |
以下のコードでデータを受信。
1 2 |
byte[] rcvBytes; var test = System.Text.Encoding.UTF8.GetString(rcvBytes); |
いずれの段階もあ<0xE3 0x81 0x82>の同じバイト順。
参考
[1] XML用語事典 [UTF-8]
XML用語事典 [UTF-8]
[2] BOM無しUTF-8でテキストファイルに書き込む – .NET Tips (VB.NET,C#…)
BOM無しUTF-8でテキストファイルに書き込む
[3] バイト順マーク – Wikipedia
バイト順マーク - Wikipedia
コメント