Intereting Posts
Данные сопоставления MySql UTF8 с акцентами, которые не отображаются должным образом при загрузке PHP Проверьте, имеют ли два массива одинаковые значения Payum Bundle отправить пустую оплату – и paypal принять его :) :( как проверить php-адрес электронной почты с помощью WAMP MySQL: печать данных только один раз для каждой группы Проблема с контактной формой – я получаю сообщения, но не содержимое (пустая страница) Как определить максимальное ограничение загрузки файлов в php $ _GET проблема в .html url Как разрешить удаленный доступ к моему WAMP-серверу для мобильных устройств (Android) Как проверить, была ли получена почта с помощью php Почему мои сеансы PHP умирают? И почему я не могу их восстановить? Codeigniter 2 – функция обратного вызова в My_Controller Я хочу получить результат поиска google в php Faking Late Static Binding перед php 5.3 Фильтры моделей на основе текущего пользователя, прошедшего проверку подлинности

Проблема с использованием кодировки utf-8 с использованием PHP + MySQL

Я перевел данные из MySQL 4 (они были первоначально установлены в latin2 encoding ) в MySQL 5 и установил кодировку в utf-8 . Он хорошо выглядит в phpMyAdmin , и utf-8 в порядке. Однако на некоторых сайтах есть вопросительные знаки! Кодировка сайта также установлена ​​на utf8 поэтому я не понимаю, где проблема.

Файлы PHP и HTML также установлены в utf8 .

Понятия не имею…

попробуйте выполнить запрос

 SET NAMES utf8 

перед любым запросом в вашей заявке

На моем сервере добавление их в файл php не повлияло:

 ini_set('default_charset','utf-8'); mysql_set_charset('utf8'); header('Content-type: text/html; charset=utf-8'); 

Но все отлично работало, как только я добавил это в начало моего php-файла:

 $mysqli->query("SET NAMES 'utf8'"); 

Примечание. Я использую кодировку utf8_general_ci в моей базе данных, но utf8_unicode_ci работает одинаково для меня.

Надеюсь, это поможет.

Попробуйте установить соединение MySQL с UTF-8:

 SET NAMES 'utf8' 

И отправьте явные заголовки UTF-8, на случай, если у вашего сервера есть другие настройки по умолчанию:

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

Вам не нужно устанавливать ваши PHP и HTML-файлы в utf-8.

Вам просто нужно настроить кодировку вывода на UTF-8, и браузер отобразит ее соответствующим образом.

В HTML:

 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

В PHP:

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

Когда вы получите строку, которая является UTF-8 из таблицы MySQL, это будет UTF-8 полностью на выходе браузера, если вы не конвертируете кодировку. Это способ, которым браузер это понимает.

Поместите файл .htaccess в корень вашего сайта с содержимым: AddDefaultCharset UTF-8

а также

в вашем dbconfig после подключения к db:

mysql_query ("SET NAMES 'utf8'");

Вот исправление. Установите заголовок в header ('Content-type: text/html; charset=utf-8'); Затем распечатайте свой контент с помощью utf8_decode($content) . У вас должны быть два, чтобы они работали.

 mysql_query("SET NAMES UTF8"); 

добавив, что эта строка в конце моего «connection.php» решила мою проблему.

Полный код файла подключения:

 <?php # FileName="Connection_php_mysql.htm" # Type="MYSQL" # HTTP="true" $hostname_test = "localhost"; $database_test = "test"; $username_test = "username"; $password_test = "password"; $test = mysql_pconnect($hostname_test, $username_test, $password_test) or trigger_error(mysql_error(),E_USER_ERROR); mysql_query("SET NAMES UTF8"); ?> 

Моя сортировка базы данных – «utf8_general_ci».

Страницы – это «defaultweaver default utf8» и «форма нормализации Unicode = C (каноническая декомпозиция)».

Когда вы показываете символы UTF8 на веб-сайте, но говорите обозревателю, что они интерпретируют их как Latin1 (или Latin2), вы видите такой тип тарабарщины: ß

Когда вы показываете символы Latin1 (или Latin2) на веб-сайте, но говорите браузеру, что они интерпретируют их как UTF8, вы видите вопросительные знаки.

Поэтому я предполагаю, что вы переключили все на UTF8 (я имею в виду, вы сказали, что DB Engine, веб-сервер и браузер вы используете UTF8), но вы фактически не конвертировали строки в UTF8.

Сделайте то, что сказал @Darkerstar. Преобразуйте свой дамп в UTF8 (Notepad ++ может сделать это легко) и импортируйте его снова.

Кажется, что не устанавливать каждую базу данных SQL, таблицу и поле в UTF-8 в MySQL и достаточно хорошо. Очень надоедливый.

Закончилось решение проблемы для решения проблем с кодировкой:

Пришлось использовать это Каждое место я открываю базу данных: $ db-> set_charset («utf8»);

И это сработало. В заключение.

У меня была эта проблема в последнее время (я надеюсь, что у нее та же проблема, что и у вас), я пробовал много способов, но в конце работа была очень простой.

Преобразуйте сложенный файл SQL в формат UTF-8, а затем импортируйте его.

BW: Я использовал Notepad ++ для преобразования.