MySQL过程更改字符集


MySQL procedure changes character set

My Schema设置为Latin1默认排序规则。

我的PHP代码:

$result = $conn->sql('CALL _TESTE("á é ô ã ç")');

我的测试程序(_T)

CREATE DEFINER=`root`@`%` PROCEDURE `_TESTE`(IN vTarNom VARCHAR(255))
BEGIN
    INSERT INTO _TEMP VALUES (NULL, vTarNom);
END

正在插入的内容:

我想保存我发送的内容:áéôãç

有什么帮助吗?

编辑:如果我从工作台调用发送"áéôãç"的过程,它会正确插入,只是在被转换的PHP调用时。

您正在将UTF-8插入Latin1数据库。这里的快速解决方案是将UTF-8字符串转换为Latin1,但最好的方案是将数据库设置为UTF-8。

Latin1可能适用于大多数语言,但它无法处理人们经常使用的其他符号。