string txt="sentence";
文字列内のすべての文字の ascii 値を取得しようとしていますが、C# winforms でこれを行うにはどうすればよいですか?
C# 文字列は、ASCII ではなく、UTF-16 でエンコードされたUnicodeです。つまり、それぞれchar
が 16 ビットの符号なし値です。特定の Unicodeグリフは、1 つまたは 2 つのこのような 16 ビット値で表すことができます。
ASCII 値を取得する「適切な」方法は、ASCII エンコーディング クラスを使用することです。
string s = "The quick brown fox jumped over the lazy dog" ;
byte[] bytes = Encoding.ASCII.GetBytes( s ) ;
ASCII は 0x00 ~ 0x7F (128 文字) の範囲のみをカバーするため、その範囲外のコード ポイントは 0x3f ( '?'
) に変換されます。
Encoding iso = Encoding.GetEncoding("ISO-8859-1")
データの損失を防ぐために、UTF-8 または少なくとも 0x00-0xFF ( ) をサポートするエンコードを使用することを検討してください。