文字列の各文字をASCII文字値に変換するにはどうすればよいですか?
任意の文字列の場合、これを試してください:
string s = Console.ReadLine();
foreach( char c in s)
{
Console.WriteLine(System.Convert.ToInt32(c));
}
Console.ReadKey();
.NETは、すべての文字列を一連のUTF-16コード単位として保存します。 (ほとんどの場合、これは「Unicode文字」に十分近いです。)
幸いなことに、UnicodeはASCIIの値がUnicodeの同じ数値にマッピングされるように設計されているため、各文字を整数に変換した後、ASCIIの範囲にあるかどうかを確認できます。 char
からint
への暗黙的な変換を使用できることに注意してください-変換メソッドを呼び出す必要はありません。
string text = "Here's some text including a \u00ff non-ASCII character";
foreach (char c in text)
{
int unicode = c;
Console.WriteLine(unicode < 128 ? "ASCII: {0}" : "Non-ASCII: {0}", unicode);
}
とても簡単です。
string s = "ABCD";
byte[] bytes = Encoding.ASCII.GetBytes(s);
int result = BitConverter.ToInt32(bytes, 0);
これで、すべてのバイトの配列ができ、int
のエンコードはresult
になります。戻る必要がある場合は、次のように移動できます。
int i = result;
byte[] bytes2 = BitConverter.GetBytes(i);
string s2 = Encoding.ASCII.GetString(bytes);
Linqを試してください:
Result = string.Join("", input.ToCharArray().Where(x=> ((int)x) < 127));
これにより、すべての非ASCII文字が除外されます。同等のものが必要な場合は、次を試してください。
Result = string.Join("", System.Text.Encoding.ASCII.GetChars(System.Text.Encoding.ASCII.GetBytes(input.ToCharArray())));
私はこのコードがあなたを助けるかもしれないと思う:
string str = char.ConvertFromUtf32(65)
Convert.ToInt32()を使用して変換します。 文字列をASCII C#の値)に変換する方法およびASCII値。