4年互联网基础行业运营经验,提供西安电信服务器托管,西安电信服务器租用,陕西电信服务器托管,陕西电信服务器租用,上海双线服务器托管,上海双线服务器租用,西安电信虚拟主机,西安电信服务器合租,上海双线服务器合租,上海双线虚拟主机服务! 免费试用3天,可免费预装主流CMS及BBS系统!
销售热线:029-87727737
专题栏目:网站ICP备案讲解
淘宝网店  Hello,欢迎进入我们的淘宝店铺
淘宝网店http://taobao.safeidc.net
虚拟主机通道  
4美国空间(100M) 4美国空间(200M)
4美国空间(300M) 4美国空间(500M)
4100M 虚拟主机Ⅰ 4200M 虚拟主机Ⅱ
4300M 虚拟主机Ⅲ 4400M 虚拟主机Ⅳ
服务器合租通道
41G 服务器合租Ⅰ 42G 服务器合租Ⅱ
43G 服务器合租Ⅲ 44G 服务器合租Ⅳ
45G 服务器合租Ⅴ 46G 服务器合租Ⅵ
47G 服务器合租I 410G 服务器合租II
420G 服务器合租III
设计开发  
4 网站设计 - 企业/门户/个人
4 程序开发 - ASP/PHP/JSP/.NET
4 界面设计 - 软件界面/手机界面
4 图标设计 - 软件图标/网站图标/表情
4 标志设计 - LOGO/VI/名片/包装盒
4 动画设计 - BANNER/短片/网站
服务器技术 > 完美转换MySQL的字符集
MySQL从4.1版本开始才提出字符集的概念,所以对于MySQL4.0及其以下的版本,他们的字符集都是latin1的,所以有时候需要对MySQL的字符集进行一下转换,MySQL版本的升级、降级,特别是升级MySQL的版本,为了不让程序继续沿用latin1字符集之后对以后Discuz!版本升级的影响和安装SupeSite,这就需要我们进行字符集的转换!
    本人转换过好多数据了,也用过了好多的办法,个人感觉最好用的就是使用MySQL命令导出导入中将字符集转换过去!
    现在我将用图文并茂的方式向大家展示一下如何将MySQL字符集进行转换,由于字符集比较多,现在主要举GBK和latin1这两种字符集之间的转换!
    首先我将讲解一下如何将MySQL从GBK转换为latin1的(如果是UTF8或者BIG5转换即将GBK换成相应的字符集即可)!这种问题常发生在MySQL从MySQL4.1及其以上版本转换为MySQL4.1以下的版本的过程中!有的人图个方便,特别是有主机权限的,直接将MySQL的data目录下的文件拷贝过去了,这样造成的问题就是乱码问题!当然我所说的这些都要求你必须拥有主机权限,虚拟主机用户可以在本地搭建好论坛,下载数据到你的本地,然后把数据导入到你本地的数据库,然后进行字符集的转换!
    现在的步骤就是将MySQL的数据导出了,在MySQL的命令提示符下(linux系统为MySQL的命令目录下),输入下面导出的命令:
 
mysqldump -uroot -p --default-character-set=gbk --set-charset=latin1 --compatible=mysql40 --skip-opt discuz>discuz.sql
 
    这样就轻松的将数据从MySQL数据库中导出了,此时导出的文件在与MySQL命令同级的目录下,即bin目录下,而且已经将MySQL字符集导出为latin1的了!现在要做的就是将数据导入MySQL4.0中去!
    同样在4.0版本的MySQL命令提示符下(linux系统为MySQL的命令目录下),输入下面导入命令:
 
mysql -uroot -p --default-character-set=latin1 -f discuz<discuz.sql
 
    这样就将字符集从GBK转为latin1同时将MySQL从4.1以上版本的转为MySQL4.0的了!
现在讲解一下如何从latin1字符集转换为GBK的!
    由于只有MySQL4.1以上的版本才有字符集的概念,所以如果你要将MySQL4.0的字符集从latin1转换为GBK字符集的话,必须导入到MySQL4.1以上的版本中,然后再导出!这里面就多了一个导出为latin1的步骤!
    同样在MySQL4.0的命令提示符下,输入下面导出的命令:
 
mysqldump -uroot -p --default-character-set=latin1 --set-charset=latin1 --skip-opt discuz>discuz.sql
 
    然后导入到MySQL4.1中,输入下面导入的命令:
 
mysql -uroot -p --default-character-set=latin1 -f discuz<discuz.sql
 
    然后在MySQL4.1下转换字符集,分别输入下面导出和导入的命令:
 
mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt discuz>discuz.sql
mysql -uroot -p --default-character-set=gbk -f newdiscuz<discuz.sql
 
    如果不出问题的话,那么转换就完毕了!其实整个过程还是比较简单的,只是过程看起来比较麻烦些!
    下面举出一个在导入过程中极易容易出现的问题!
    在导入的时候容易出现unknown command '/'这样的错误,其实这是由于MySQL在导出的时候,它有时候给一些繁体字后面自动加上了个反斜杠造成的!解决此问题的办法就是打开备份的sql(这里为discuz.sql),提示错误的时候会提示具体哪行出现了错误,找到那行,把反斜杠去掉就行了!其实你可以用UltraEdit这些文本处理的工具,批量的去处理这些反斜杠!凭个人经验,有很多用户名取的比较怪,这样就容易出现反斜杠,这样只要纠正那些用户名就行了!
 
关于我们   |   联系我们   |   诚聘英才   |   付款方式   |   友情伙伴   |   程序下载   |   资讯中心   |   网站地图   |   ♀E网科技手机站
7X24小时服务 值班电话:15929901730  销售热线:029-87727737 85029417  投诉/疑问:root@safeidc.net
空间业务TM 客服部TM:957051052  客服部TM:957815920  客服部TM:812380390  数据中心TM 客服部TM:958165499  客服部TM:957616182
增值业务TM 客服部TM:278550633  客户备案TM 客服部TM:674526652  技术支持TM 客服部TM:347904550
Copyright © 2005-2009 SafeIDC.Net 版权所有 《增值电信业务经营许可证》 陕ICP备08001107号