发布网友 发布时间:2022-04-10 03:12
共2个回答
懂视网 时间:2022-04-10 07:34
问题的原因就很明显了,这说明在存入数据时就出现了问题,并不是数据库自身的原因。mysql php apache中好像跟apache又没什么关系,所以问题肯定出在了php操作数据库的代码里!
我是采用pdo来操控数据库的,于是搜索了一下pdo怎样设置utf8编码,在php-pdo官方文档中,好像并没有提及,但是在 User Contributed Notes 中发现这么一段:
<?php //If you use the UTF-8 encoding, you have to use the fourth parameter : $db = new PDO(‘mysql:host=myhost;dbname=mydb‘, ‘login‘, ‘password‘, array(PDO::MYSQL_ATTR_INIT_COMMAND => ‘SET NAMES ‘UTF8‘‘)); ?>
在实例化PDO时,需要提供第四个参数,来设置编码。
array(PDO::MYSQL_ATTR_INIT_COMMAND => ‘SET NAMES ‘UTF8‘‘)
再实验用php往数据库中插入数据,发现数据库中新插入的数据不再乱码了,并且客户端展示的数据库中文内容也不再显示问号,原来一切问题都出现在数据库和客户端中间的桥梁--PDO这里!
PDO连接数据库的中文乱码问题
标签:文件 环境 init coding microsoft encoding 网站 说明 code
热心网友 时间:2022-04-10 04:42
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">