夏期劇*_*期劇場 6 php unicode encoding special-characters
我正在使用PHP解析一些数据并将其放入MySQL中.但是如果数据包含像êm-KhêMySQL 这样的特殊字符输出以下错误:
SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xEAm-Kh\xEA...'
Run Code Online (Sandbox Code Playgroud)
我测试后,MySQL不是问题.(表和列整理是utf8_general_ci)当我将êm-Khê字符串直接插入表中(手动)时,它会进入它.所以MySQL可以接受这些数据.
所以任何想法为什么它在PHP级别出现此错误?
我不太了解并且非常了解编码知识.
ê转换\xEA?所以,当我得到数据时,我ê怎么能把它放到数据库中,因为它ê没有变化?
所以问题是你的数据库连接不是UTF8,而是可能是LATIN1,所以你必须使用PHP的函数或在连接到数据库后utf8_encode()执行。SET NAMES utf8
$handle = new PDO("mysql:host=localhost;dbname=dbname",
'username', 'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
Run Code Online (Sandbox Code Playgroud)
该线程有一些很好的参考和解释
| 归档时间: |
|
| 查看次数: |
1062 次 |
| 最近记录: |