Проблемы UTF-8 PHP/MySQL
Я всегда использовал кодировку ISO-8859-1, но теперь я перехожу к UTF-8.
К сожалению, я не могу заставить его работать.
My MySQL DB UTF-8, мой PHP-документ закодирован в UTF-8, я устанавливаю кодировку UTF-8, но она по-прежнему не работает.
(это специальные символы, такие как æ/ø/å, что не работает)
Надеюсь, вы, ребята, можете помочь!
Ответы
Ответ 1
Убедитесь, что соединение с вашей базой данных также использует этот набор символов:
$conn = mysql_connect($server, $username, $password);
mysql_set_charset("UTF8", $conn);
Согласно документации mysql_set_charset
на php.net:
Note:
This is the preferred way to change the charset. Using mysql_query() to execute
SET NAMES .. is not recommended.
Смотрите также: http://nl3.php.net/manual/en/function.mysql-set-charset.php
Проверьте набор символов вашего текущего соединения с помощью:
echo mysql_client_encoding($conn);
Смотрите также: http://nl3.php.net/manual/en/function.mysql-client-encoding.php
Если вы сделали эти вещи и добавили странные символы в свою таблицу, вы увидите, что она отображается правильно.
Ответ 2
Не забудьте также установить кодировку соединения в utf8.
В ext\mysqli do
$mysqli->set_charset("utf8")
В ext\mysql do
mysql_set_charset("utf8")
С другими расширениями db вам может потребоваться выполнить запрос типа
SET NAMES 'utf8'
Дополнительная информация о кодировке соединений в MySQL
Как отмечают другие, убедитесь, что ваш исходный код также закодирован в utf-8. Обратите особое внимание на отсутствие спецификации (Byte Order Mark) - она будет отправлена в браузер до того, как будет выполнен какой-либо код, поэтому использование заголовков или сеансов станет невозможным.
Ответ 3
После подключения к db запустите запрос SET NAMES UTF8
$db = new db(...);
$db->query('set name utf8');
и добавьте этот тег в заголовок
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Ответ 4
У вас есть эта ошибка? MySql SELECT UNION Недопустимое смешивание коллажей Ошибка? Просто установите для вас весь mysql в utf 8, затем
SET character_set_connection = utf8;
Ответ 5
Попробуйте это после подключения к mysql:
mysql_query("SET NAMES 'utf8'");
И закодируйте PHP-документ в UTF-8 без спецификации.
Ответ 6
У меня была та же проблема, но теперь она решена. Вот решение:
1st: обновить таблицу ur
ALTER TABLE tbl_name
УСТАНОВКА ПО УМОЛЧАНИЮ utf8
COLLATE utf8_general_ci;
второй:
добавьте это в раздел главы HTML-кода:
Отношения
Салеха А.Латиф
Ответ 7
В настоящее время PDO является рекомендуемым способом использования mysql. С этим вы должны использовать строку подключения для установки кодировки. Например: "mysql: host = $host; dbname = $db; charset = utf8"