Как преобразовать от unicode до ASCII

Там какой-либо путь состоит в том, чтобы преобразовать значения unicode в ASCII?

5
задан Hanny 17 March 2010 в 06:12
поделиться

3 ответа

Технически да, вы можете, используя Encoding.ASCII .

Пример (из byte [] в ASCII):

// Convert Unicode to Bytes

byte[] uni = Encoding.Unicode.GetBytes("Whatever unicode string you have");

// Convert to ASCII

string Ascii = Encoding.ASCII.GetString(uni);

Просто помните, что Unicode - это гораздо больший стандарт, чем Ascii, и будут символы, которые просто невозможно правильно закодировать. Посмотрите здесь таблицы и немного больше информации о двух кодировках.

2
ответ дан 18 December 2019 в 09:06
поделиться

Что ж, учитывая, что существует более 100 000 символов Юникода и только 128 символов ASCII, сопоставление 1-1, очевидно, невозможно.

Однако вы можете использовать объект Encoding.ASCII для получения байтовых значений ASCII из строки Unicode.

1
ответ дан 18 December 2019 в 09:06
поделиться

Вы не можете конвертировать из Unicode в ASCII. Почти каждый символ Unicode не может быть выражен в ASCII, а те, которые могут быть выражены, имеют точно такие же кодовые точки в ASCII, как и в UTF-8, который, вероятно, у вас есть. Почти единственное, что вы можете сделать хотя бы близко к правильному, это отбросить все символы выше кодовой точки 128, но даже это, скорее всего, не соответствует вашим требованиям. (Другая возможность - упростить акцентированные или умлаутированные буквы, чтобы сделать более 128 символов "почти" выразимыми, но это все равно даже не начинает охватывать Юникод.)

.
1
ответ дан 18 December 2019 в 09:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: