Проблема кодировки символов в PHP и MySQL - PullRequest
1 голос
/ 06 декабря 2009

Когда я запускаю запрос непосредственно в MySQL, используя phpMyAdmin, он разрешает (длинная черта, ненормальная -), но когда я запускаю этот запрос из своего кода PHP, он превращает их в –.

Если вы закодируете - это придет %E2%80%93 (в JavaScript). %E2 становится â, %80 становится и %93 становится . Я не понимаю, когда я запускаю запрос в phpMyAdmin, он сохраняет данные как , но когда я запускаю запрос в своем коде PHP, он не работает так, как я хочу.

Ответы [ 3 ]

1 голос
/ 06 декабря 2009

Какую кодировку символов вы используете в своей таблице? После подключения к БД в php попробуйте запустить это:

mysql_query('SET NAMES utf8'); //if you use utf-8
0 голосов
/ 06 декабря 2009

Возможно, вам не хватает метки met в вашем HTML, написали ли вы следующую строку в заголовке вашего HTML-документа?

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

В противном случае браузер интерпретирует его как ISO-8859-1.

Вы должны использовать одну и ту же кодировку везде, в вашей базе данных, в вашем соединении и в HTML-документе.

Чтобы убедиться, что у вас есть таблица utf-8, выполните следующую инструкцию и проверьте, что она почти равна CHARSET = utf8 почти в конце.

 SHOW CREATE TABLE tableName; 
0 голосов
/ 06 декабря 2009

Может быть, движок phpMyAdmin выходит из длинного тире в нормальный тире?

...