Home > Database > Mysql Tutorial > 【开发必读】php与mysql中文乱码解决办法_MySQL

【开发必读】php与mysql中文乱码解决办法_MySQL

WBOY
Release: 2016-06-01 13:02:16
Original
806 people have browsed it

原文地址:http://www.phpthinking.com/archives/320

MySQL对中文的支持程度还是很有限的,尤其是新手,但凡出现乱码问题,就会头大。

乱码问题1:用PHPmyAdmin操作MySQL数据库汉字显示正常,但用PHP网页显示MySQL数据时所有汉字都变成了?号。

症状:用PHPmyAdmin输入汉字正常,但当PHP网页显示MySQL数据时汉字就变成了?号,并且有多少个汉字就有多少个?号。
原因:没有在PHP网页中用代码告诉MySQL该以什么字符集输出汉字。
解决方法:

1.网页文件head设置编码
2.PHP页面在保存的时候使用utf-8编码保存,可以用记事本或convertz802转换文件
3.在MYSQL中新建数据库的时候数据库 选择UTF-8编码既字符集 设定为 utf-8_unicode_ci(Unicode (多语言), 不区分大小写),
库里面 表table的 整理 设置为 utf-8_general_ci
表里面的每个字段的 整理 都设置为 utf-8_general_ci
4.在PHP连接数据库的时候,也就是mysql_connect()之后加入

1 //设置数据的字符集utf-8 www.ITstudy.cn
2 mysql_query(<code class="string">"set names ’utf8’ "<code class="plain">);
3 mysql_query(<code class="string">"set character_set_client=utf8"<code class="plain">);
4 mysql_query(<code class="string">"set character_set_results=utf8"<code class="plain">);

注意是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。



Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template