.NET
での直接文字列からバイトの配列変換頻繁に、.NET開発者は文字列をバイト配列に変換する必要があります。 .NETでのデフォルトのUTF-16エンコードは、異なる文字エンコーディングを使用して文字列を扱う場合に問題がある場合があります。 この記事では、明示的なエンコードなしで文字列の生のバイト表現を取得する方法を紹介します。
バイト表現は をエンコードせずに表現します この手法は、文字列の文字データをバイト配列に直接コピーし、文字エンコードをバイパスします。
.NET文字は16ビットUnicodeであるため、バイト配列のサイズは
(文字カウントに1文字あたり2バイトを掛けています)。static byte[] GetBytes(string str) { byte[] bytes = new byte[str.Length * sizeof(char)]; System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length); return bytes; }
バイトからの文字列再構成<
元の文字列を再現するには、str.Length * sizeof(char)
:
これは、変換プロセスを反映しており、バイトを文字配列にコピーして文字列を作成します。 この方法の利点
このアプローチには、いくつかの重要な利点があります:
static string GetString(byte[] bytes) { char[] chars = new char[bytes.Length / sizeof(char)]; System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length); return new string(chars); }
エンコーディングを指定する必要はありません。バイトはUnicode文字を直接表します 堅牢なエラー処理:
エラーなしで無効な文字を処理します。バイトは生データとして扱われます システム内の効率:以上がエンコードせずに文字列を.NETのバイト配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。