ホームページ > バックエンド開発 > C++ > エンコードせずに文字列を.NETのバイト配列に変換するにはどうすればよいですか?

エンコードせずに文字列を.NETのバイト配列に変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-02-01 05:21:09
オリジナル
565 人が閲覧しました

How Can I Convert Strings to Byte Arrays in .NET without Encoding?

.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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート