.NET で同等のバイト配列に変換する必要がある文字列があります。
これは簡単なはずですが、脳が痙攣しています。
System.Text.Encoding
出力として何を期待するかを .NET に伝えるには、エンコーディング( )を使用する必要があります。たとえば、UTF-16 (= System.Text.Encoding.Unicode
)の場合:
var result = System.Text.Encoding.Unicode.GetBytes(text);
まず、必要なエンコーディングを決定します。最初に Unicode について少し知っておく必要があります。
System.Text.Encoding
次はそれに対応するワークアウト。My Core .NET refcard では、一般的なもののほとんどと、インスタンスを取得する方法について説明しています (たとえば、 の静的プロパティEncoding
または .NET を呼び出すことによって) Encoding.GetEncoding
。
最後に、すべてのバイトを一度に取得するか (これが最も簡単な作業方法です。Encoding.GetBytes(string)を 1 回呼び出すだけで完了です)、またはチャンクに分割する必要があるかどうかを判断します。Encoding.GetEncoderを使用してから、一度に少しずつエンコードします。エンコーダーは、たとえば文字の途中で中断する必要がある場合に備えて、呼び出し間の状態を維持します。
どのエンコーディングを使用していますか? Konrad はそれをかなり理解しましたが、他にもあり、間違ったもので間抜けな結果が得られる可能性があります。
byte[] bytes = System.Text.Encoding.XXX.GetBytes(text)
可能な場所XXX
:
ASCII
BigEndianUnicode
Default
Unicode
UTF32
UTF7
UTF8
このような:
string test = "text";
byte[] arr = Encoding.UTF8.GetBytes(test);