parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Нашёл удовлетворительное решение проблемы

AlexanderM 31.03.2010 11:38

Как я уже писал, кодировка базы данных UTF-8, кодировка страниц - тоже, а вот кодировка скриптов - WIN-1251 (то есть $request:charset[windows-1251]).

Если поставить $request:charset[utf-8], то всё начинает работать.

При этом не важно, будет $response:charset[windows-1251] или $response:charset[utf-8].

То есть, проблему можно, наверное, сформулировать так: не корректно работает перекодировка текста из windows-1251 в utf-8 при передаче «грязных» данных в PgSQL.

Поскольку «чистые» данные перекодируются нормально, то наверное проблема действительно в PQescapeStringConn.

На счёт распространённости проблемы.
Я проверял в версиях PgSQL 8.3.1 и 8.3.10 - проблема есть. Может быть Vint (или кто-нибудь другой) проверит с учётом новых деталей в версии 8.4.2 - может быть там действительно всё работает.
Как много людей использует PgSQL с utf-8 и скрипты win-кодировке? Может быть имеет смысл где-то в документации написать, что не следует использовать win-кодировку при работе с PgSQL?

Для себя я решил, что просто перейду на utf-8. Это не сложно и даже не очень трудоёмко.

Спасибо за помощь.