Я написал функцию для преобразования строки в шестую строку. Таким образом, «abc» будет преобразован в «616263».Преобразование символа в CP1252 Hex в C#
Вот функция:
private string StringToHex(string myString)
{
int ctr, li_max;
string ls_hex = "";
li_max = myString.Length;
for(ctr = 0; ctr < li_max; ctr++)
ls_hex = ls_hex + (Convert.ToInt16(myString[ctr])).ToString("x2");
return ls_hex;
}
Однако, когда я Юникод как «<а» Я получаю "2039616263". Поэтому мой первый символ преобразуется в 2039 (юникод). Я хотел получить «8B616263» (CP1252). Смотрите изображение ниже:
Как я могу получить шестнадцатеричное значение для правильного кодирования?
т.е. 8B вместо 2039
После неправильной кодировки строки вы не можете восстановить. Поэтому любой код, читающий массив byte [] и преобразованный в строку, должен быть исправлен, чтобы использовать правильную кодировку. Вероятно, это код, который читает файл, который необходимо исправлять. – jdweng