postgres npgsql с помощью c # - пытается записать специальные символы в базу данных в кодировке ascii - PullRequest
1 голос
/ 12 апреля 2011

Я использую библиотеку с открытым исходным кодом npgsql http://pgfoundry.org/projects/npgsql/ для манипулирования сторонними данными в базе данных postgres. База данных закодирована SQL_ASCII.

Если я запускаю запрос, используя стандартную строку c #, такую ​​как

INSERT INTO CITIES (название города) значения ("Köln")

значение, которое отображается в базе данных, больше похоже на: пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ

например. перемешаны. Я потратил много часов, пытаясь использовать различные кодировки строк и т. Д., Но безуспешно

1 Ответ

1 голос
/ 12 апреля 2011

SQL_ASCII означает, что вы отключаете функцию кодирования в базе данных. Таким образом, вы должны убедиться, что все ваши клиенты используют одну и ту же кодировку. Я считаю, что npgsql всегда будет использовать UTF8, и это нельзя изменить.

Таким образом, «значение, которое отображается в базе данных» отсутствует - оно будет зависеть от того, в какой кодировке находится клиент, который обращается к базе данных.

Лучший способ исправить это - установить фактическую кодировку в базе данных и установить для нее что-то полезное, например UTF8 или LATIN1.

...