php mysql 特殊_PHP/MySQL中的特殊字符

我只想提供一些关于

vartec提出的解决方案的更多细节(这取决于你的MySQL安装)是你问题的最正确的解决方案。

首先,MySQL中的字符集/编码问题是一个有点复杂的主题,这在MySQL手册

Chapter 9.1 “Character Set Support”中有广泛的涵盖。在你的情况下,特别是

9.1.4. “Connection Character Sets and Collations”将是最相关的。

简要说明:MySQL必须知道您的客户端应用程序的哪个字符集/编码(从您的PHP脚本的数据库persoective来讲)期望,因为它会从服务器上定义的内部字符集/编码转码所有字符串数据,数据库,表或列级连接到连接字符集/编码。您在客户端使用UTF-8,所以必须告诉MySQL您使用的是UTF-8。这是通过MySQL命令SET NAMES’utf8’完成的,它必须作为打开连接的第一个查询发送。根据您的安装以及您在PHP脚本中使用的MySQL客户端库,可以在每个连接上自动完成。

如果您使用PDO,则只需要设置一个配置参数

$db = new PDO($dsn, $user, $password);

$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");

使用mysqli更改客户端字符集/编码更加简单:

$mysqli = new mysqli("localhost", "user", "password", "db");

$mysqli->set_charset("utf8");

我希望这将有助于使整个事情更容易理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值