Как преобразовать строку в ASCII - PullRequest
19 голосов
/ 18 марта 2011

Как преобразовать каждую букву в строке в ее символьное значение ASCII?

Ответы [ 6 ]

24 голосов
/ 18 марта 2011

.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);
}
17 голосов
/ 18 марта 2011

Для любой строки попробуйте это:

string s = Console.ReadLine();
foreach( char c in s)
{
    Console.WriteLine(System.Convert.ToInt32(c));
}
Console.ReadKey();
12 голосов
/ 27 мая 2014

Все довольно просто:

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);
2 голосов
/ 16 октября 2018

Попробуйте 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())));
0 голосов
/ 18 марта 2011

Используйте Convert.ToInt32 () для конвертации.Вы можете взглянуть на Как преобразовать строку в значение ASCII в C # и значения ASCII .

0 голосов
/ 18 марта 2011

Я думаю, что этот код может вам помочь:

string str = char.ConvertFromUtf32(65)
...