这个例子里用的编码是GB2312,如果你是其他的编码,修改GB2312为你自己的,比如UTF8
在MY.INI里添加:
[mysql]
default-character-set=gb2312
[mysqld]
default-character-set=gb2312
然后重新启动MYSQL服务。
进入数据库
alter database charset = gb2312;
还要记得在导入数据库的脚本的前面写上 set names gb2312;
这样就OK了。
================================================
mysql编码设置
MySQL的默认编码是Latin1,不支持中文,那么如何修改MySQL的默认编码呢,下面以UTF-8为例来说明
需要注意的是,要修改的地方非常多,相应的修改方法也很多。下面是一种最简单最彻底的方法:
一、Windows
1、中止MySQL服务
2、在MySQL的安装目录下找到my.ini,如果没有就把my-medium.ini复制为一个my.ini即可
3、打开my.ini以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
4、启动MySQL服务
二、Linux
1、中止MySQL服务(bin/mysqladmin -u root shutdown)
2、在/etc/下找到my.cnf,如果没有就把MySQL的安装目录下的support-files目录下的my-medium.cnf复制到/etc/下并改名为my.cnf即可
3、打开my.cnf以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
4、启动MySQL服务(bin/mysqld_safe &)
非常简单,这样的修改一劳永逸,今后MySQL一切相关的默认编码均为UTF-8了,创建新表格的时候无需再次设置
需要注意的是,当前数据库中已经存在的数据仍保留现有的编码方式,因此需要自行转码,方法在网上有很多,不再赘述
此外,在web上也要设置为:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
$id = mysql_connect("localhost","root","1314520");
mysql_query('set names utf8',$id);
------------------------------------------------------------------------------------
我用的版本是MySQL5.0.16,经过测试通过下面方法可以解决乱码问题。
1、设置phpMyAdmin
Language:Chinese simplified (zh-utf-8) MySQL 字符集:UTF-8 Unicode (utf8) MySQL 连接校对 gbk_chinese_ci |
2、创建数据库时
将整理设置成 gbk_chinese_ci
3、用SQL建立表中
ENGINE=MyISAM DEFAULT CHARSET=gbk; ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=40 ; |
也可以通过phpmyadmin来创建表,将所有varchar类型的整理属性设为:gbk_chinese_ci
4、检查表结构中
varchar(100) 的整理属性为gbk_chinese_ci
其它类型的整理属性为空。
经过上述方法设置后,在phpMyadmin中的数据库里的中文显示就不会是乱码了,但是我们用php文件显示数据库的数据时,还是会有乱码,于是还得进行下面的设置:
5、PHP程序代码中加上
$db->query("SET CHARACTER SET GBK");
下面是我在连接文件中的设置,具体可以根据自己的程序来修改。
<?
define("server","127.0.0.1");
define("user","root");
define("passwd","123456");
$conn = mysql_connect(server,user,passwd);
mysql_select_db("database1",$conn);
mysql_query("SET CHARACTER SET GBK");
?>