У меня есть таблица с текстом и текстом – греческие буквы, когда я использую инструмент sql и выбираю данные из этой таблицы, показывая правильно
Но когда я показываю этот интерфейс своего сайта с использованием массива mysql_fetch, и когда эхо отображается, как показано ниже
Кто-нибудь знает, как исправить эту ошибку, спасибо.
попробуйте следующее:
после подключения к mysql выполните этот запрос, чтобы убедиться, что вы используете UTF8:
mysql_query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'");
убедитесь, что в HTML (head) вы используете правильную кодировку, попробуйте:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
если это не помогает, попробуйте различную кодировку, например, ISO-8859-1
Попробуй это:
mysqli_set_charset($con, "utf8");
После подключения к БД.
Оставляя это здесь для тех, кто приходит на этот сайт через Google, потому что у них такая же проблема, но вместо этого используется PDO (например, я) – с вами все в порядке:
$dns = "mysqli:host=localhost;dbname=db_name"; $pdo = new PDO($dns, 'db_user', 'db_pass', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); $pdo->exec("SET CHARACTER SET 'utf8'");
Я потратил много часов, пока не понял это.
Вступление: греческие символы были ошибочными в mysql. Я применил qxxx- ответ на PHP и отлично работал. Затем мне пришлось перенести все на новый хост, а затем снова появилась проблема.
Что случилось?
Кодировка схемы MySQL была установлена на латинский язык. Хранимые процедуры унаследовали набор символов схемы MySQL для своих параметров.
Итак, что я сделал:
Выброшены процедуры и функции MySQL (убедитесь, что вы создаете резервную копию своего кода)
Измененная кодировка по умолчанию MySQL (с использованием MySQL Workbench, щелкните правой кнопкой мыши по имени вашей базы данных – есть значок db ..)
повторно созданы процедуры / функции MySQL
Кроме того, я оставил неповрежденным исправление qxxx !
Я столкнулся с такой же проблемой при внедрении греческих символов. Такие решения, как mysql_ query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'");
query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'");
не работал для меня. После Googling я обнаружил, что набор символов для сопоставления базы данных должен быть сделан greek_general_ci
вместе с полем, в котором данные будут храниться как categoryname и т. Д. Это решило мою проблему.
Вам не нужно бросать столы или что-то еще. Используйте MySQL Workbench и перейдите в каждую таблицу, заменив Collocation на utf8 – general ci, а затем сделайте то же самое для каждого Varchar типа Colum – он находится в нижней части окна.