本文目录一览:
php读取mysql中文数据出现乱码的解决方法
- PHP页面语言本身的编码类型不合适,这时候,你直接在脚本中写的中文肯定是乱码,不用说数据库了
解决方法:选择
UTF8
或者gb2312
,这样客户浏览器会自动选择并出现正确的中文显示。注意:UTF8
或者gb2312
都可以正确显示中文的。 - 数据库MySQL中的编码类型不正确。
解决方法:创建数据库的时候,MySQL字符集选择
UTF8
,MySQL连接校对选择utf8_general_ci
,这样创建的数据库用来存储中文肯定没有问题,否则,你的中文首先在MySQL中就是乱码,更不要期望它会给你在PHP页面中显示正确。 - 与平时的脚本编辑环境有关。比如,有些内容是自己用word写的,有些是用记事本写的,有些用editplus、ultraplus等文本编辑器。有时候就直接在DW中写中文了, 解决方法:尽量用同一种编辑器。如果是拷贝来得既有的内容,建议用ultraplus中的编码转换功能把它转换成utf8或者gb2312。 到底转换成什么类型并不重要,关键要求你的PHP WEB应用程序中的编码要一致就行。
- 编程访问MySQL时,建议添加一行代码:
mysql_query("SET NAMES 'GBK'");
PHP mysql 如何将从数据中读入的中文乱码转换成中文字符?
要解决乱码首先需要知道出现乱码的原因:
一、PHP+MySQL出现中文乱码的原因
- MYSQL数据库的编码是utf8,与PHP网页的编码格式不一致,就会造成MYSQL中的中文乱码。
- 使用MYSQL中创建表、或者选择字段时设置的类型不是utf8,而网页编码不是utf8,也可能造成MYSQL中文乱码。
- PHP页面的字符集与数据库的编码不一致。
- PHP连接MYSQL数据库,操作是设定的语句指定的编码和页面编码,PHP页面编码不一致。
- 用户提交的HTML页面编码,和显示数据的页面编码不一致,就肯定会造成PHP页面乱码。
二、解决中文乱码
- 网页编码设置。一般在HTML代码中的文件头html中加入属性:
保证网页是<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
utf-8
编码。 - PHP代码设置。在php代码的开始部分加入以下代码:
且要求保存的文件编码方式是utf-8,这样就保证了该文件也是utf-8编码。header("Content-type: text/html;charset=utf-8");
- 数据库中表的字段中存储中文的部分,要设置为
utf8_general_ci
类型。 - PHP在连接数据库操作时,要设置操作的字段类型为utf8,设置方法如下:
mysql_connect('localhost','user','password'); mysql_select_db('db'); mysql_query("set names utf8;"); // 设置字符集
PHP的MySQL中,中文显示这样,应该怎样设置?
- 首先把MySQL的服务停掉,在运行窗口输入:
net stop mysql
- 把服务器和客户端的字符集改成自己想用的字符集:GB2312或是utf8等……
具体操作为:打开mysql安装目录下的
my.ini
; 找到default-character-set
,将其改为自己想用的字符集:GB2312或是utf8等……,要注意的是这里有两个default-character-set
,用Ctrl+F
定位在文件最前面输入default
就会找到,都要改过来; - 重启MySQL服务器,在运行窗口输入:
net start mysql
- 最重要的一点是,到这里我们已经能够解决乱码问题了,可问题是我们依然还会出现乱码问题,这是因为我们现在的表被创建的时候用的是默认的字符集(latin1),所以这时候我们要把表删除,然后重建就可以了