Я вставляю данные из таблицы UTF8-general-ci в другую таблицу UTF8-general-ci. Это статьи. Около 20 или 30 не будут вставлены из-за случайного использования французских названий или фраз типа «а ля». Ошибка, которую я получаю: Описание ошибки: Неверное строковое значение: '\ xF4t l' \ xE9 … '.
Ничего, что я делаю, кажется, работает, включая добавление
mysqli_set_charset($conn, "utf8");
Если обе таблицы уже UTF8, что еще я могу сделать, чтобы вставить эти случайные статьи с французскими фразами?
Байты, которые вы указали в своем вопросе (F4 и E9), недействительны в данных UTF-8. Некоторые или все ваши данные, вероятно, на самом деле ISO-8859-1 – вам нужно будет преобразовать его в UTF-8 с помощью mb_convert_encoding()
или iconv()
.
Попробуйте это с помощью utf8_encode () ;
$sql = "INSERT INTO table (col1) VALUES ('".utf8_encode($input_variable)."')"; if ($conn->query($sql) === TRUE) { echo "Inserted!"; } else { echo "Error: " . $sql . "<br>" . $conn->error; }