rudolph098 Ответов: 2

Как конвертировать из windows-1252 в ascii extended


Я пытаюсь преобразовать строку, которая имеет специальный символ ¤. Кодировка по умолчанию у меня есть Windows-1252. А код символа 164 ( Окна-1252) но в Ascii Extended код символа 164 равен - ( таблица ASCIIПроблема, с которой я столкнулся, заключается в том, что после преобразования Windows-1252 в Ascii я получаю � в выводе вместо -. Что я делаю не так?

Что я уже пробовал:

Вот мой код
var input = "La Pe¤a";

var extAscii = Encoding.GetEncoding(437);

Encoding win1252 = Encoding.GetEncoding(1252);

var bytes1252 = win1252.GetBytes(input);

byte[] output = Encoding.Convert(Encoding.GetEncoding(1252), Encoding.GetEncoding(437),bytes1252);

Console.WriteLine(extAscii.GetString(output));
Console.ReadLine();


спасибо за помощь.

2 Ответов

Рейтинг:
0

KarstenK

Выход - это интерпретация данных. Проверьте, не является ли проблемный символ значением 164 или это проблема вывода. Может быть, консоль может показывать только ascii.

String input = "La Pe¤a";

Encoding extAscii = Encoding.GetEncoding(437);
Encoding win1252 = Encoding.GetEncoding(1252);

var bytes1252 = win1252.GetBytes(input);

byte[] output = Encoding.Convert(win1252, extAscii, bytes1252);//use of the objects
int problem = output[5];//check for 164
Некоторые дополнительные примеры кода из Microsoft.


rudolph098

к сожалению, я получаю 15

Рейтинг:
0

rudolph098

Ладно, у меня есть решение. На данный момент я не знаю, почему я получаю 15, когда делаю следующее преобразование ниже.

String input = "La Pe¤a";

Encoding extAscii = Encoding.GetEncoding(437);
Encoding win1252 = Encoding.GetEncoding(1252);

var bytes1252 = win1252.GetBytes(input);

byte[] output = Encoding.Convert(win1252, extAscii, bytes1252);//use of the objects
int problem = output[5];//check for 164


так что я решил сделать, это конвертировать из Аски для Аски
byte[] output = Encoding.Convert(extAscii, extAscii, bytes1252);//use of the objects
int problem = output[5];//check for 164


И это, как я понимаю, 164 которого в ASCII-это -