Есть ли функция PHP, чтобы это исправить? - PullRequest
3 голосов
/ 09 февраля 2011

«« Извините, я надеюсь, что это не странно или что-то в этом роде »

Как я могу исправить кодировку на этом?

Ответы [ 6 ]

4 голосов
/ 09 февраля 2011

То, с чем вы сталкиваетесь, является результатом того, что данные записываются в одной кодировке и интерпретируются как другая. Вам нужно убедиться, что вы запрашиваете ввод в том же формате, в котором ожидали. Я рекомендую просто придерживаться UTF-8 весь путь, если только вам не нужно избегать многобайтовых символов, в этом случае Возможно, вы захотите взглянуть на форсирование ASCII.

Убедитесь, что вы говорите PHP для внутреннего использования UTF-8:

ini_set('default_charset', 'UTF-8');

И убедитесь, что вы говорите браузеру, чтобы он ожидал кодированный в UTF-8 текст, оба в заголовках ...

header("Content-Type:text/html; charset=UTF-8");

… и в ваших метатегах (html5 ниже)…

<meta charset="utf-8">

Установка этого параметра позволит браузеру отправлять вам содержимое в кодировке UTF-8 при отправке формы, а также будет интерпретировать результаты, которые вы отправляете обратно, как UTF-8.

Вы также должны убедиться, что хранилище вашей базы данных и кодировка соединения также находятся в UTF-8. Обычно, если это просто тупое хранилище данных (то есть оно не будет каким-либо образом манипулировать или интерпретировать данные), это не имеет значения, но лучше иметь все в порядке, чем столкнуться с проблемами позже.

3 голосов
/ 09 февраля 2011

Функция iconv, как правило, может справиться с такой проблемой кодирования.

1 голос
/ 09 февраля 2011

Какие у тебя настройки php ??

Вы можете настроить php для кодирования выходных строк, в большинстве случаев рекомендуется использовать utf8, а также вы должны иметь тег Content-Type на своей html-странице

1 голос
/ 09 февраля 2011
0 голосов
/ 09 февраля 2011

Похоже, что правильным решением является mb_convert_encoding ()

строка mb_convert_encoding (строка $ str, строка $ to_encoding [, mixed $ from_encoding])

Преобразует кодировку символов строки str в to_encoding из опционально from_encoding.

0 голосов
/ 09 февраля 2011

Кроме того, если я могу добавить помимо тех пунктов, которые указаны выше, если вы сохраняете данные в таблицах базы данных, таблицы и столбцы (и, возможно, сама база данных) должны иметь utf8_general_ci, чтобы он мог обрабатывать многобайтовые символы.*

Я также выдаю этот запрос set names 'utf8' перед выполнением любого запроса.

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