ホームページ > バックエンド開発 > C++ > エンコードを指定せずにC#文字列の生のバイト表現を取得するにはどうすればよいですか?

エンコードを指定せずにC#文字列の生のバイト表現を取得するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-02-01 05:26:08
オリジナル
567 人が閲覧しました

How Can I Get the Raw Byte Representation of a C# String Without Specifying Encoding?

c#で文字列の元のバイト表現を取得します(指定されたエンコードなし)

文字列をC#で処理する場合、文字コーディングがバイトに影響を与えるために非常に重要であることを理解します。ただし、目標が説明なしで元のバイトを取得することのみである場合、明示的に指定されたコードを避けるための代替方法があります。

従来の提案とは対照的に、バイトが不要な場合は、指定されたコードなしでC#の文字列のバイト表現を取得できます。この方法により、プロセスが簡素化され、バイト表現の一貫性が保証されます。

この理由で、以下に示すように

を使用できます:

System.Buffer.BlockCopy この関数は、システムに文字列を保存するために使用されるバイトを正確に表すバイト配列を返します。バイトから元の文字列を取得するには、次の機能を使用できます。

<code class="language-csharp">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;
}</code>
ログイン後にコピー
この方法は、特定のコードの使用よりも優れています。

文字コーディングスキームを心配することなく、一貫したバイトが保証されます。
<code class="language-csharp">// 请勿对任意字节使用此函数;仅对相同系统上的 GetBytes 输出使用
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);
}</code>
ログイン後にコピー

コーディング/デコードに問題なく無効な文字を処理できます。

    以上がエンコードを指定せずにC#文字列の生のバイト表現を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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