文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>mysql 5.x使用utf8作为默认字符集

mysql 5.x使用utf8作为默认字符集

时间:2009-05-30  来源:sideway

默认情况下mysql使用latin1作为自己的默认字符集,为使mysql使用utf8作为默认字符集我们可以通过以下几个步骤来实现:

一、修改/etc/my.cnf配置文件:
1. 在[mysqld]段中添加default-character-set=utf8
2. 添加一个[client]段并在其后添加default-character-set=utf8

二、重启mysql服务
service mysqld restart

三、验证结果
mysql -u root -p
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql> show variables like 'collation_%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+

备注:(以下从网络摘抄)
另外可以通过CREATE DATABASE `database` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;来建立utf8字符集的数据库

我们可以完全无视数据库默认的字符集是什么,我们关心的只有数据库在建立的时候是不是加入了字符集
选择。

(1)使用如下指令建立数据库:

CREATE DATABASE `database` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

(2)客户端php程序使用如下方法设定连接所使用的字符集:
PHP程序在查询数据库之前,执行mysql_query("set names utf8;");

例子:

1. 2. mysql_connect('localhost','user','password');
3. mysql_select_db('my_db');
4.
5. //请注意,这步很关键,如果没有这步,所有的数据读写都会不正确的
6. //它的作用是设置本次数据库联接过程中,数据传输的默认字符集
7. mysql_query("set names utf8;");
8.
9. //必须将gb2312(本地编码)转换成utf-8,也可以使用iconv()函数
10. mysql_query(mb_convet_encoding("insert into my_table values('测试');", "utf-8", "gb2312"));
11. ?>

(3)如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中
文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询
排序等问题,可以使用binary属性约束,例如:
create table my_table ( name varchar(20) binary not null default '')type=myisam default charset latin1;

自此,使用utf8字符集的完整的例子结束了。

三、旧数据升级办法

(1) 导出数据库:

mysqldump -uroot -p123456 --default-character-set=latin1 --set-charset=utf8 --opt olddatabase > newdatabase.sql

(2) 修改newdatabase.sql,在文件开头增加一条sql语句: “SET NAMES utf8;“,保存。

(3)mysql -hlocalhost -uroot my_db
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载