Там какой-либо путь состоит в том, чтобы преобразовать значения unicode в ASCII?
Технически да, вы можете, используя 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, и будут символы, которые просто невозможно правильно закодировать. Посмотрите здесь таблицы и немного больше информации о двух кодировках.
Что ж, учитывая, что существует более 100 000 символов Юникода и только 128 символов ASCII, сопоставление 1-1, очевидно, невозможно.
Однако вы можете использовать объект Encoding.ASCII
для получения байтовых значений ASCII из строки Unicode.
Вы не можете конвертировать из Unicode в ASCII. Почти каждый символ Unicode не может быть выражен в ASCII, а те, которые могут быть выражены, имеют точно такие же кодовые точки в ASCII, как и в UTF-8, который, вероятно, у вас есть. Почти единственное, что вы можете сделать хотя бы близко к правильному, это отбросить все символы выше кодовой точки 128, но даже это, скорее всего, не соответствует вашим требованиям. (Другая возможность - упростить акцентированные или умлаутированные буквы, чтобы сделать более 128 символов "почти" выразимыми, но это все равно даже не начинает охватывать Юникод.)
.