我将UTF8-general-ci表中的数据插入到另一个UTF8-general-ci表中。这些是文章。由于随机使用法语标题或短语如“àla”,大约20或30不会插入。我收到的错误是错误描述:字符串值不正确:'\ xF4t l'\ xE9 ...'。
我所做的一切似乎都无效,包括添加
mysqli_set_charset($conn, "utf8");
如果两个表都已经是UTF8,那么我还可以用法语短语插入这些随机文章吗?
答案 0 :(得分:8)
您在问题(F4和E9)中引用的字节在UTF-8数据中无效。部分或全部数据可能实际上是ISO-8859-1 - 您需要使用mb_convert_encoding()
或iconv()
将其转换为UTF-8。
答案 1 :(得分:2)
使用 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;
}