Есть определенный код который получает и выводит листинг из БД (MySQL).
Не могу одолеть один столбец, там данные (текст) лежат в кодировке cp1163
Соответственно в листинге отображаются кракозябры.
Знатоки, подскажите пожалуйста как можно штатными средствами C# перекодировать полученное в cp1251.
Пробовал указать set names при подключении, но MySQL не понимает такой кодировки.
Ответ
Общий вид такой:
var sourceEncoding = Encoding.GetEncoding(1163);
var resultEncoding = Encoding.GetEncoding("windows-1251");
byte[] sourceBytes = utf8.GetBytes(text);
byte[] resultBytes = Encoding.Convert(sourceEncoding, resultEncoding, sourceBytes);
var result = resultEncoding.GetString(resultBytes);
Только вот Code Page найти я не смог. Вот спецификация на CP1163, вы можете отнаследоваться от System.Text.Encoding и реализовать у него Convert, GetBytes.
Комментариев нет:
Отправить комментарий