У меня есть база данных Postgresql с кодировкой UTF8 и сопоставлением для Windows1250.
Используется приложением, написанным на Delphi, и доступ к нему осуществляется с помощью драйвера ODBC с необязательным параметром: set client_encoding = LATIN2.
В этом приложении отображаются все строки из базы данных.правильно.Теперь я хочу получить данные базы данных с помощью приложения c #, но не могу получить правильную кодировку.
Я пытался использовать разные client_encodings и класс Encoding, чтобы получить их правильно, но без успеха.
Например, символ«š» - один из символов, который плохо отображается.
- с кодировкой по умолчанию (utf8) Я получаю \ u009a
- с set client_encoding = latin2 Я получаю?char
- с set client_encoding = windows1250 Я получаю ошибку: "символ с байтовой последовательностью 0xc2 0x9a в кодировке" UTF8 "не имеет эквивалента в кодировке WIN1250".
Есть предложения как решить эту проблему?Заранее спасибо.
РЕШЕНИЕ: Я наконец получил правильную строку, используя:
Encoding.Default.GetString(Encoding.GetEncoding("Latin2").GetBytes(stringFromDB));