我正在使用外部数据库(只读)和本地数据库(测试系统)。
所以每次从外部数据库获取数据时,我都会收到如下所示的异常警告,默认空字符如“�”。
在我的情况下,我应该如何修改数据库设置?谢谢。
(3/3) 查询异常
SQLSTATE[HY000]:一般错误:1366 不正确的字符串值:'\xF8peri ...' 对于第 1 行的列 'customer_name'(SQL:插入 customers
(id
, customer_name
, customer_email
) 值 (10008, Ol**n N***n K***t�pe AS, n***n@ k***t.no))
外部数据库
character_set_client = utf8
character_set_connection = latin1
字符集数据库 = utf8
character_set_filesystem = 二进制
character_set_results = latin1
字符集服务器 = utf8
字符集系统 = utf8
collation_connection = utf8_general_ci
collation_database = latin1_swedish_ci
collation_server = latin1_swedish_ci
服务器 Mysql 版本 5.1。
内部数据库
character_set_client = utf8mb4
character_set_connection = utf8mb4
字符集数据库 = utf8mb4
character_set_filesystem = 二进制
字符集结果 = utf8mb4
character_set_server = latin1
字符集系统 = utf8
collation_connection = utf8mb4_general_ci
collation_database = utf8mb4_unicode_ci
collation_server = latin1_swedish_ci
服务器 MySQL 版本 5.7.19
测试系统环境:Win10、WAMPSERVER(MySQL v5.7.19, PHP v7.1.9)
最佳答案
\xF8 是一种 unicode,它不适用于 latin 和 latin_swedish 字符集。您必须将字符集更新为 UTF8 或 UTF8mb4,并将排序规则更新为 utf8_general_ci 或 utf8mb4_general_ci
关于Laravel 中正确字符和排序规则的 MySQL 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46648829/