举例详解MySQL字符集[MySQL防范]
本文“举例详解MySQL字符集[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
举例详解MySQL字符集,下面是完好的一个例子:
1、成立数据库表
mysql>CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;
#注意背面这句话 "COLLATE utf8_general_ci",大致意思是在排序时按照utf8校验集来排序
#那么在这个数据库下成立的全部数据表的默许字符集城市是utf8了
mysql>create table my_table (name varchar(20) not null default '')type=myisam default charset utf8;
#这句话就是成立一个表了,拟定默许字符集为utf8
2、写数据
例子1是通过PHP直接插入数据:
a.phpmysql_connect('localhost','user','password');mysql_select_db('my_db');//请注意,这步很关键,假如没有这步,全部的数据读写城市不精确的//它的作用是设置本次数据库联接历程中,数据传输的默许字符集//其他编程语言/接口也近似,比方 .net/c#/odbc//jdbc则设置衔接字符串为近似"jdbc:mysql://localhost/db?user=user&password=123456&useUnicode=true&characterEncoding=UTF-8"mysql_query("set names utf8;");//必须将gb2312(本地编码)转换成utf-8,也可以利用iconv()函数mb_convert_encoding("insert into my_table values('测试');", "utf-8", "gb2312");?>b.php//输出本页编码为utf-8header("content-type:text/HTML; charset=utf-8");mysql_connect('localhost','user','password');mysql_select_db('my_db');mysql_query("set names utf8;");if(isset($_REQUEST['name')){//由于上面已经指定本页字符集为utf-8了,因此无需转换编码mysql_query(sprintf("insert into my_table values('%s');", $_REQUEST['name']));}$q = mysql_query("select * from my_table");while($r = mysql_fetch_row($q)){print_r($r);}?>
自此,利用utf8字符集的完好的例子完毕了.
假如你想利用gb2312编码,那么倡议你利用latin1作为数据表的默许字符集,这样就可以直接用中文在号令行工具中插入数据,并且可以直接显示出来.而不要利用gb2312大概gbk等字符集,假如耽忧查询排序等问题,可以利用binary属性约束,比方:
create table my_table ( name varchar(20) binary not null default '')type=myisam default charset latin1;
附1:旧数据进级办法
以本来的字符集为latin1为例,进级成为utf8的字符集.本来的表: old_table (default charset=latin1),新表:new_table(default charset=utf8).
第一步:导出旧数据
mysqldump --default-character-set=latin1 -hlocalhost -uroot -B my_db --tables old_table > old.sql
第二步:转换编码(近似Unix/Linux环境下)
iconv -t utf-8 -f gb2312 -c old.sql > new.sql
大概可以去掉 -f 参数,让iconv自动判断本来的字符集
iconv -t utf-8 -c old.sql > new.sql
在这里,假定本来的数据默许是gb2312编码.
第三步:导入
改正old.sql,在插入/更新语句开始之前,增添一条sql语句:
"SET NAMES utf8;"
,保存.
mysql -hlocalhost -uroot my_db < new.sql
大功告成!!
附2:支持查看utf8字符集的MySQL客户端有
1.) MySQL-Front,据说这个项目已经被MySQL AB勒令终止了,不知为什么,假如国内还有不少破解版可以下载(不代表我举荐利用破解版 :-P).
2.) Navicat,另一款非常不错的MySQL客户端,汉化版刚出来,还邀请我试用过,总的来说还是不错的,不过也需求付费.
3.) PhpMyAdmin,开源的php项目,非常好.
4.) Linux下的终端工具(Linux terminal),把终端的字符集设置为utf8,衔接到MySQL之后,履行 SET NAMES UTF8; 也能读写utf8数据了.
以上是“举例详解MySQL字符集[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |