web-dev-qa-db-ja.com

文字列をASCIIに変換する方法

文字列の各文字をASCII文字値に変換するにはどうすればよいですか?

21
Student

任意の文字列の場合、これを試してください:

string s = Console.ReadLine();
foreach( char c in s)
{
    Console.WriteLine(System.Convert.ToInt32(c));
}
Console.ReadKey();
17
Student

.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);
}
24
Jon Skeet

とても簡単です。

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);
12
HMagdy

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())));
2
user2956314

私はこのコードがあなたを助けるかもしれないと思う:

string str = char.ConvertFromUtf32(65)
0
r12

Convert.ToInt32()を使用して変換します。 文字列をASCII C#の値)に変換する方法およびASCII値

0
Akshatha