gpt4 book ai didi

php - 如何用PHP解析特殊字符到MySQL?

转载 作者:可可西里 更新时间:2023-11-01 13:28:32 26 4
gpt4 key购买 nike

我正在使用 PHP 解析一些数据并将其放入 MySQL。但是,如果数据包含特殊字符,如 êm-Khê MySQL 会输出以下错误:

SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xEAm-Kh\xEA...'

经我测试,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"));

This thread有一些很好的引用和解释

关于php - 如何用PHP解析特殊字符到MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12740054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com