MySQL字符集及MySQL编码转换.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MySQL字符集及MySQL编码转换 时间:2006-05-14 14:39:11 类别:技术 RSS 2.0 引用 今天找到这篇文章,里面提到从latin1到UTF8的MySQL编码转换。收藏一下,最近要将所有的数据库都转一次,一直错误的使用latin1,再不转以后麻烦大了。 出处:未知 个人建议,数据库字符集尽量使用utf8(utf-8),以使你的数据能很顺利的实现迁移,因为utf8字符集是目前最适合于实现多种不同字符集之间的转换的字符集,尽管你在命令行工具上无法正确查看数据库中的内容,我依然强烈建议使用utf8作为默认字符集. 接下来是完整的一个例子: 1.创建数据库表 mysqlCREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci; #注意后面这句话 COLLATE utf8_general_ci,大致意思是在排序时根据utf8编码格式来排序 #那么在这个数据库下创建的所有数据表的默认字符集都会是utf8了 mysqlcreate table my_table (name varchar(20) not null default )type=myisam default charset utf8; #这句话就是创建一个表了,制定默认字符集为utf8 2.写数据 通过php直接插入数据: ?php mysql_connect(localhost,user,password); mysql_select_db(my_db); //请注意,这步很关键,如果没有这步,所有的数据读写都会不正确的 //它的作用是设置本次数据库联接过程中,数据传输的默认字符集 mysql_query(set names utf8;); //必须将gb2312(本地编码)转换成utf-8,也可以使用iconv()函数 mysql_query(mb_convet_encoding(insert into my_table values(测试);, utf-8, gb2312)); ? 通过页面提交插入数据: ?php //输出本页编码为utf-8 header(content-type:text/html; charset=utf-8); mysql_connect(localhost,user,password); mysql_select_db(my_db); 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); } ? meta http-equiv=Content-Type content=text/html; charset=utf-8 form action= method=post input type=text name=name value= input type=submit value=submit /form 自此,使用utf8字符集的完整的例子结束了. 如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询排序等问题,可以使用binary属性约束,例如: create table my_table ( name varchar(20) binary not null default )type=myisam default charset latin1; 附:旧数据升级办法 以原来的字符集为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 第二步:转换编码 iconv -t utf-8 -f gb2312 -c old.sql new.sql 在这里,假定原来的数据默认是gb2312编码

文档评论(0)

82393aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档