Laravel 中正确字符和排序规则的 MySQL 设置

标签 mysql database laravel-5 character-encoding collation

我正在使用外部数据库(只读)和本地数据库(测试系统)。

所以每次从外部数据库获取数据时,我都会收到如下所示的异常警告,默认空字符如“�”。

在我的情况下,我应该如何修改数据库设置?谢谢。


(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

collat​​ion_connection = utf8_general_ci

collat​​ion_database = latin1_swedish_ci

collat​​ion_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

collat​​ion_connection = utf8mb4_general_ci

collat​​ion_database = utf8mb4_unicode_ci

collat​​ion_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/

相关文章:

mysql - Laravel 5.1 - DB 正在向我的查询添加反勾号?

MySQL - 更新选择问题

java - 从结果集中检索结果 mysql java

mysql - 给定时间段内每天 2 个最大日期之间的日期差异

MySQL 的操作顺序?

mysql - select查询在oracle中慢但在mysql数据库中快

asp.net - sql session 超时建议

database - 有没有办法获得关于两个 Jet (.mdb) 数据库的差异报告?

php - Laravel 5 调用未定义的方法 Illuminate\Database\Eloquent\Collection::attach()

php - Laravel 5.2 Eloquent 地将日期时间与当前数据和时间进行比较