#c_sharp #перекодировка #encoding
Есть определенный код который получает и выводит листинг из БД (MySQL). Не могу одолеть один столбец, там данные (текст) лежат в кодировке cp1163. Соответственно в листинге отображаются кракозябры. Знатоки, подскажите пожалуйста как можно штатными средствами C# перекодировать полученное в cp1251. Пробовал указать set names при подключении, но MySQL не понимает такой кодировки.
Ответы
Ответ 1
Общий вид такой: 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.Ответ 2
byte[] smthIn1163 = ...; string s = new string(Encoding.GetEncoding(1163).GetChars(smthIn1163)); Ну и Encoding лучше создать один раз, а не в цикле.
Комментариев нет:
Отправить комментарий