php网页抓取乱码(mysql设置utf8_unicode字符集_ci字符集字符集页面输出?)
优采云 发布时间: 2022-01-02 14:07php网页抓取乱码(mysql设置utf8_unicode字符集_ci字符集字符集页面输出?)
一位同事问我关于乱码的问题。乱码有很多种,比如数据库乱码,页面提取数据乱码,其他显示正常,phpmyadmin显示也正常等,MySQL对中文的支持还是很有限的。尤其是对于新手来说,遇到乱码问题,就会头大。他的问题如下。
标题:mysql设置utf8_unicode_ci字符集php页面输出??乱码的解决方法
摘要:使用PHPmyAdmin操作MySQL数据库汉字显示正常,但是使用PHP网页显示MySQL数据时,汉字全部变成?标志
乱码问题:使用PHPmyAdmin操作MySQL数据库时,MySQL数据库汉字显示正常,但PHP网页显示MySQL数据时,汉字全部变成?标志。
现象:用PHPmyAdmin输入汉字是正常的,但是当PHP网页显示MySQL数据时,汉字变成了?标志,有多少?符号,因为有多少个汉字。
原因:PHP网页中没有代码告诉MySQL用什么字符集输出汉字。
解决方案:
1.网页文件头设置编码
2.PHP页面保存时使用utf-8编码,可以使用记事本或者convertz802进行文件转换
3.MYSQL新建数据库时,选择UTF-8编码和数据库的字符集,设置为utf-8_unicode_ci(Unicode(多语言),不区分大小写),
库中表的排序设置为utf-8_general_ci
表中各个字段的排序设置为utf-8_general_ci
4.PHP连接数据库时,在mysql_connect()之后添加
//设置数据的字符集utf-8
mysql_query("设置名称'utf8'");
mysql_query("set character_set_client=utf8");
mysql_query("set character_set_results=utf8");
注意是utf8,不是utf-8。
如果您的网页编码为 gb2312,则为 SET NAMES GB2312。不过小编强烈建议网页编码、MySQL数据表字符集、PHPmyAdmin都统一使用UTF-8。
以上四点可以实现整个站点的utf-8编码,数据库中不会出现中文乱码。
乱码问题2:用PHPmyAdmin输入数据时出错,不允许输入或乱码。
解决方案:这是一个设置问题。请安装最新版本的PHPmyAdmin或Appserv,打开PHPmyAdmin,MySQL字符集:UTF-8 Unicode(utf8);MySQL连接校对应为utf8_unicode_ci;新建数据库时也请选择utf8_unicode_ci。网页字符为也最好选择utf-8进行采集。utf-8是国际标准编码,这是一种趋势。
乱码问题2:本机开发的MySQL数据表,在本机测试一切正常,但使用空间商提供的PHPmyAdmin上传时出现问题,上传失败。尤其是使用国外的PHP空间。
解决方法:首先检查网站提供的PHPmyAdmin字符集设置,并确保您构建的数据表与服务提供者的代码相同。国外MySQL不支持gb2312,甚至最新版的Apache也不支持gb2312。如果是因为编码不统一,可以重建数据表,当然使用国际标准UTF8。