c # получение правильной кодировки для данных в базе данных postgresql - PullRequest
0 голосов
/ 05 июня 2018

У меня есть база данных 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));

1 Ответ

0 голосов
/ 27 июня 2018

Я наконец получил правильную строку, используя:

Encoding.Default.GetString(Encoding.GetEncoding("Latin2").GetBytes(stringFromDB));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...