Странный вопрос MAMP UTF-8 - PullRequest
       17

Странный вопрос MAMP UTF-8

1 голос
/ 13 января 2011

в дальнейшем тексте я буду ссылаться на некоторые символы как правильные символы UTF , это кодированный в utf-8 символ в его нормальной форме (á) и неправильные символы UTF это то же самое, но испортил символ utf-8 (например, отображается как ý).

Итак, CMS работает на MAMP - это локально разработанный веб-сайт для клиента.Теперь в администрации я ввожу правильные символы utf-8.При просмотре на локальном хосте он отображается как правильные символы utf-8.Однако в mysql в кодировке utf-8 он показывает неверные символы utf-8 (в Sequel Pro / phpMyAdmin).

Когда база данных была перемещена на сервер staging / dev, та самая БД, которая работает на MAMP, перестал работать и отображается как неправильный - так же, как они вводятся на MAMP.

Однако, если я открою администрацию (тот же код) на промежуточном сервере и введу правильные символы, не только они отображаются нормально,но они также сохраняются в mysql как правильные символы.

Я на самом деле в шоке - тот самый код, тот же самый БД, и он все еще ведет себя по-другому.

Вы когда-нибудь замечали что-то подобное, то есть можете ли вы избавить меня от боли, когда вы просматриваете миллионы различных точек входа, где можно испортить utf-8.

PS: Я думаю, что этоможет быть связано с MAMP (странные настройки utf-8), а не строго с приложением.PS: приложение использует MySQLi, каждый файл имеет кодировку UTF-8: / Единственное, что отличается тем, что на mamp я использую только соединение mysql с хостом / пользователем, а на промежуточной стадии вводится сокет db.

Спасибо.

1 Ответ

3 голосов
/ 13 января 2011

Я действительно испытал это несколько раз.Чтобы обойти это, я делаю следующее:

Как только я подключаюсь к базе данных:

mysql_query("SET NAMES 'utf8'", $db_con);

Вверху каждой страницы:

header('Content-Type: text/html; charset=utf-8');

ЕслиВы хотите быть по-настоящему педантичным, используя любые формы, которые вы используете для публикации данных:

<form accept-charset="utf-8"></form>
...