C#で文字列をバイト配列に変換する 質問する

C#で文字列をバイト配列に変換する 質問する

VB から C# に何かを変換しています。次のステートメントの構文に問題があります:

if ((searchResult.Properties["user"].Count > 0))
{
    profile.User = System.Text.Encoding.UTF8.GetString(searchResult.Properties["user"][0]);
}

すると、次のエラーが表示されます。

引数 1: 'object' から 'byte[]' に変換できません

'System.Text.Encoding.GetString(byte[])' に最もよく一致するオーバーロードされたメソッドに無効な引数がいくつかあります

私はコードを修正しようとしましたこれ投稿しましたが、まだ成功していません:

string User = Encoding.UTF8.GetString("user", 0);

助言がありますか?

ベストアンサー1

すでにバイト配列がある場合は、そのバイト配列を作成するために使用されたエンコードの種類を知る必要があります。

たとえば、バイト配列が次のように作成された場合:

byte[] bytes = Encoding.ASCII.GetBytes(someString);

これを次のような文字列に戻す必要があります。

string someString = Encoding.ASCII.GetString(bytes);

継承したコード内で、バイト配列を作成するために使用されたエンコーディングが見つかった場合は、設定されているはずです。

ASCII以外にも、System.Text.EncodingクラスにはUTF8Unicode(UTF-16 用)、およびも含まれますUTF32。完全なリストはドキュメントにあります。

おすすめ記事