Переменные PHP ENV_: кодировка UTF-8 в £ (фунт) - PullRequest
2 голосов
/ 26 апреля 2011

У меня проблемы с кодировкой символа '£'. (Проблема: когда вы помещаете '£' из поля формы и делаете вставку, в таблицу MySQL ничего не вставляется). Я проверил все, что касается поддержки UTF-8, в моих заголовках PHP-кода, сервере, сопоставлении / наборе символов в MySQL и т. Д.

Я использую MAMP в качестве среды разработки (PHP 5.3.5).

Все отлично работает на моем производственном сервере (коммерческий хост) (PHP 5.2.6), поэтому я исключил любые проблемы с моим кодом

Однако, я думаю, я нашел виновника: при сравнении обеих сред эта строка отсутствует на моем сервере разработки:

_ENV ["HTTP_ACCEPT_CHARSET"] ISO-8859-1, utf-8; q = 0,7, *; q = 0,3

Однако в php.ini нет ничего, что я мог бы изменить. Есть идеи, или я лаю не на том дереве?

Приветствия

Roland

1 Ответ

0 голосов
/ 26 апреля 2011

Я бы написал простой тест, чтобы проверить, где что-то идет не так.

  • echo() выведите значение из $_POST в PHP и проверьте, правильно ли браузер отправляет данные и правильно ли они анализируются в PHP. При выполнении этого теста убедитесь, что браузер правильно определил набор символов.
  • Если это сработает, вероятно, вы что-то неправильно настроили в базе данных. Если у вас есть и таблица сортировки, и кодировка соединения как «UTF-8», то у вас не должно возникнуть проблем при сохранении данных в MySQL (если и SET NAMES, и таблица сортировки одинаковы, никакой трансляции не будет, поэтому будет правильно храниться в таблице).

Вы не упомянули соединение MySQL нигде в своем вопросе (просто «и т. Д.»). На всякий случай, если вы что-то пропустили, внимательно прочитайте эту статью Как избежать проблем с кодировкой символов в PHP

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