问题出现在执行同步数据脚本的时候,脚本终止,并提示
laravel SQLSTATE[HY000]: General error: 1366 Incorrect string value
分析原因,发现终端上显示字符串乱码问题,然后排查数据库字符集,数据表字段设置情况。由于当前脚本执行的是将 A 数据表数据插入到 B 数据表中,代码操作是 Model::Create($attributes)
然后检查 Model 类是否存在当前 fillable 字段的属性修改器,结果发现问题了
|
|
于是修改将内置转换大小的函数 strtoupper
替换为 `mb_strtoupper
问题得到了解决
PHP 涉及到字符串操作的时候,优先想到字符编码问题,优先使用
mb_*
函数代替*
函数,包括涉及到计算字符串长度,处理文本文件替换等问题时