Я пытался импортировать слова со специальными символами в MySQL с помощью команды PHP INSERT, и я либо получаю ??? для каждого специального символа или всего после того, как он обрезан.
Я много читал в Интернете, но ни одно из решений не работает.
Так что в настоящее время Coruña
из скрипта вставляет как Coru???a
в SQL с кодом ниже:
$con=mysqli_connect("localhost","user",'pass','database');
$con->query("SET NAMES 'utf8' ");
$con->query("SET CHARACTER SET 'utf8'");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO tbl_state (id, statecode, statename,country)
VALUES (1, 'A Coruña', 'A Coruña', 'ES')");
mysqli_close($con);
Моя страница кодируется content="text/html; charset=utf-8"
,
Я пробовал с utf8_general_ci
а также utf8_spanish_ci
сопоставление для таблицы и столбца в MySQL, но безуспешно.
Есть специалисты, которые пришли к этой проблеме, что может быть не так?
Спасибо!
Итак, вместо того, чтобы пытаться вводить данные через PHP-скрипт, я вставил их непосредственно из phpMyAdmin с помощью запроса INSERT.
Для правильного вывода данных в PHP (без квадратов и вопросительных знаков) я добавил это при установлении соединения:
$mysqli->query("SET NAMES 'utf8'");
Все работало отлично!
Спасибо за помощь, и если кто-то все еще найдет ответ, как это сделать с помощью PHP-скрипта, будет интересно услышать.
Других решений пока нет …