Я не могу правильно сказать, является ли это причиной вашей проблемы, но в любом случае вы не можете поместить Mysql-спецификатор charset и collation ни в HTML-форму, ни в PHP.ini.
Rightтеперь вы используете слепое значение MySQL и помещаете его везде, где считаете нужным - даже не подозревая.Не делай этого.Прежде всего решите, какую кодировку вы хотите использовать и принять.На ваш вопрос я бы сказал, что это latin1 .
Итак, настройте HTML и PHP соответствующим образом:
<form accept-charset="latin1">
Для элемента формы HTML.Обратите внимание, что в HTML нет latin1_swedish_ci
, см. Документ HTML .
Следующий и аналогичный пункт находится в настройке php.ini.Там не существует чего-то, как вы положили туда.Измените его на latin1 :
default_charset = "latin1"
После исправления этих двух настроек браузер узнает, какая кодировка страницы содержит форму, и форма даже сигнализируетБраузер принимает принятую кодировку данных, переданных обратно на сервер.
Таким образом, это должно гарантировать, что данные, которые у вас есть внутри переменных PHP, имеют кодировку latin1 .Затем вы можете передать эти данные в свою базу данных, если правильно настроили кодировку клиента базы данных, сервер базы данных, кодировку соединения между ними и, естественно, кодировку данных в базе данных.
Тем не менее, правильная настройка формы - это самый первый шаг, который вам нужно сделать, прежде чем вы сможете убедиться, что соединение mysql не мешает.