PHP - кодировка снова появляется - PullRequest
1 голос
/ 24 марта 2011

У меня проблемы с кодированием на моей веб-странице, и это сводит меня с ума. Позвольте мне попытаться объяснить

  • У меня есть метатег, определяющий utf8 как кодировку.
  • Я включаю сценарии как utf8 (<script type="text/javascript src="..." charset="utf8"></script>).
  • В файлах .php я заявляю header('Content-Type: text/html; charset=utf8');
  • В моей базе данных (postgreSQL) я сделал запрос show lc_collate;, а результат был en_US.UTF-8
  • Я использую AJAX
  • Когда я пытаюсь сохранить значение поля «name» как «áéíóú», я получаю значение «Ã¯Ã © Ãóú» в наборе записей (используя phpPgAdmin для просмотра результатов).

Что я делаю не так? Есть способ исправить это без использования декодирования / кодирования? У кого-нибудь есть хорошая справка по этим вопросам?

Спасибо всем!

Ответы [ 3 ]

1 голос
/ 26 марта 2011

Может быть, кодировка клиента установлена ​​неправильно? PostgreSQL автоматически преобразует кодировку символов на клиенте в кодировку базы данных. Чтобы это работало, нужно знать, какую кодировку использует клиент. Безопаснее всего установить это при открытии соединения с помощью:

SET CLIENT_ENCODING TO 'UTF8';

Подробнее см. Документы

0 голосов
/ 25 марта 2011

Попробуйте присоединиться к base64 и декодировать на другом конце.

0 голосов
/ 24 марта 2011

Возможно, вы храните данные как ISO-8859-1?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...