C# における文字列とバイト配列の変換
文字列からバイト配列への変換では、コードを VB から C# に移行するときに問題が発生する可能性があります。これは、バイト配列ではなく返されたオブジェクトのプロパティを扱う場合に特に当てはまります。
次の問題のあるコードを考えてみましょう:
<code class="language-csharp">if ((searchResult.Properties["user"].Count > 0)) { profile.User = System.Text.Encoding.UTF8.GetString(searchResult.Properties["user"][0]); }</code>
このコードで発生したエラーは、プロパティ値が実際にはオブジェクトであるにもかかわらず、バイト配列であると期待したことに起因します。この問題を解決するには、まず文字列をバイト配列に変換するために使用されるエンコーディングを理解することが重要です。
バイト配列が ASCII エンコードを使用して作成された場合は、次を使用して文字列に変換し直す必要があります。
<code class="language-csharp">string someString = Encoding.ASCII.GetString(bytes);</code>
同様に、UTF8 エンコーディングが使用されている場合、バイト配列を文字列に変換する適切な方法は次のとおりです。
<code class="language-csharp">string someString = Encoding.UTF8.GetString(bytes);</code>
バイト配列の作成に使用されたエンコーディングを識別することで、文字列変換が正しく実行されていることを確認できます。
以上がC# で文字列をバイト配列に、またはその逆に正しく変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。