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クラスにはUTF8
、Unicode
(UTF-16 用)、およびも含まれますUTF32
。完全なリストはドキュメントにあります。