2010-11-30 40 views
5

可能性の重複:私は[]配列とその逆のバイトを文字列に変換するにはどうすればよい
.NET String to byte Array C#バイトへの文字列[]とその逆?

?いくつかのバイナリストレージに文字列を格納する必要があります。両方向に例を示してください。もう1つのこと:各文字列は90KBより大きいかもしれません。

+3

この質問には、言語間の互換性がないランタイムシリアル化出力の動作に応じて、誤解を招く可能性のある回答があります。したがって、私は複写としてクローズするつもりはありません。 UTF-8のような適切なエンコーディングを使用する方がずっと良い方法です。 – cdhowie

+2

@cdhowie:同意します。 「むしろ誤解を招く」とは、それを置くための礼儀正しい方法です。 :) – MusiGenesis

+0

回答ありがとうございました!;) – Edward83

答えて

18

あなたはUTF-8エンコーディングを使用する場合:あなたはオフに行進し、誰かがすでにあなたは一般的に、そこにあることを認識する必要があります与えられています例のいずれかを使用する前に

// string to byte[] 
byte[] bytes = Encoding.UTF8.GetBytes(someString); 

// byte[] to string 
string anotherString = Encoding.UTF8.GetString(bytes); 
8

を、文字列と一連のバイトの間に一意なマッピングはありません。文字列がバイナリにマッピングされる方法(およびその逆)は、使用するencodingによって決まります。 Joel Spolskyはこの件に関してawesome articleと書いています。

文字列を取得するためにバイナリをデコードするときは、最初にバイナリを生成するのと同じエンコードを使用する必要があります。それ以外の場合は問題が発生します。

関連する問題