[C#] テキストデータをUTF8にエンコーディングでUDPで送信する バイトオーダについて。

確認結果

・ 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で送信。

wiresharkで伝送中のデータを確認。

以下のコードでデータを受信。

いずれの段階もあ<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

コメント

タイトルとURLをコピーしました