Это тоже была моя проблема, и я наконец нашел способ ее решить.Я не опытный программист, но я пишу здесь ответ, чтобы он мог быть полезен тем, кто, как и я, не смог решить свою проблему, используя другие способы, которые они пытались.
По моему мнениюв общем, вы всегда должны сначала убедиться, что вы сделали эти три вещи:
1- Добавьте этот тег к каждому из ваших источников HTML, который использует какой-то текст с языком, отличным от другого.чем английский (добавьте его между открывающим и закрывающим тегами head ):
<meta charset="utf8"/>
(как вы видите, это тег без закрывающей пары)
2- Сразу после того, как вы подключаетесь к своей базе данных (например, с помощью объекта mysqli с именем $ conn), тоже выполните этот запрос:
$conn->query("SET NAMES 'utf8'");
(По крайней мере, это работало для моего собственного языка, которыйФарси)
3- Установите сопоставление создаваемых вами таблиц как "utf8-general-ci" с нуля (... и я подчеркиваю на этом " с нуля". Если вы хотите узнать причину, прочитайте остаток моего ответа ниже!):
Конечно,Будут важны эти три вещи, которые я сказал выше, но ни одна из них не помогла мне, когда я боролся с этой неловкой катастрофой!:( Так что я разочаровался, но потом, как всегда, появилась эта SO-страница! :) Я прочитал замечательную статью, предложенную @deceze, которая есть в комментариях под постом, и увидел в ней следующие строки:
Сервер базы данных имеет набор символов по умолчанию, база данных может иметь набор символов по умолчанию, таблица базы данных может иметь набор символов по умолчанию и, наконец, столбец имеет настройку набора символов.Правило простое: если для столбца не указан явный набор символов, для него используется следующий более высокий стандарт.Значения по умолчанию для сервера, базы данных и таблицы не имеют никакого влияния, если столбец имеет явный набор символов.
На самом деле, моя глупая проблема заключалась в том, что я создал таблицу ранее (с юникодом, отличным отutf8) и , затем при попытке изменить его юникод на utf8, похоже, это не сработало, потому что, как говорится в статье, даже сортировка таблицы отделена от сортировки каждого из ееполя, поэтому, когда вы меняете одно, другие, как правило, сохраняют свои параметры сортировки по умолчанию (тот, который вы выбрали, когда создавали таблицу с нуля !) Наконец, я перешел на вкладку структуры в phpmyadmin и изменил параметры сортировкииз тех полей, которые все еще использовали latin1 к utf8-general-ci тоже.(ci здесь означает без учета регистра)
Надеюсь, это поможет.