<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[[实践OK]如何把早期bo-blog里latin1的MYSQL编码转换为全utf8编码格式。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Mon, 14 Jul 2014 07:54:23 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	背景：很久前用bo-blog时的编码是latin编码，但里面存的是utf8格式，出现啥问题？当时是放在虚拟域名机上没有ssh，每次备份出来都是乱码，找bob呢，说是得用帝国备份进行导出，会有自动编码识别功能，确实有这个功能，给我后呢，我通过帝国备份王导入自己的本机vmware机器上的mysql版本是Mysql 5.6.13正常，导入到外网vps机器上的mysql 5.6.19上不正常，显示乱码，于是否，我觉得是编码问题了，对照发现，果然不一样，高版本的mysql默认就全是utf8的：<br/>一）内网vmware测试机上的编码情况（mysql 5.6.13）：<br/>mysql&gt; show variables like &quot;%char%&quot;;<br/>+--------------------------+----------------------------------+<br/>&#124; Variable_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>+--------------------------+----------------------------------+<br/>&#124; character_set_client&nbsp;&nbsp;&nbsp;&nbsp; &#124; latin1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; character_set_connection &#124; latin1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; character_set_database&nbsp;&nbsp; &#124; utf8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>&#124; character_set_filesystem &#124; binary&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; character_set_results&nbsp;&nbsp;&nbsp;&nbsp;&#124; latin1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; character_set_server&nbsp;&nbsp;&nbsp;&nbsp; &#124; latin1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>&#124; character_set_system&nbsp;&nbsp;&nbsp;&nbsp; &#124; latin1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; character_sets_dir&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124; /usr/local/mysql/share/charsets/ &#124;<br/>+--------------------------+----------------------------------+<br/>二）Vps的最新版本的mysql如下（mysql 5.6.19）：<br/>mysql&gt; show variables like &quot;%char%&quot;;<br/>+--------------------------+----------------------------------+<br/>&#124; Variable_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>+--------------------------+----------------------------------+<br/>&#124; character_set_client&nbsp;&nbsp;&nbsp;&nbsp; &#124; utf8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; character_set_connection &#124; utf8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; character_set_database&nbsp;&nbsp; &#124; utf8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>&#124; character_set_filesystem &#124; binary&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; character_set_results&nbsp;&nbsp;&nbsp;&nbsp;&#124; utf8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; character_set_server&nbsp;&nbsp;&nbsp;&nbsp; &#124; utf8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>&#124; character_set_system&nbsp;&nbsp;&nbsp;&nbsp; &#124; utf8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; character_sets_dir&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124; /usr/local/mysql/share/charsets/ &#124;<br/>+--------------------------+----------------------------------+<br/>方案一：<br/>目前，对导入正常显示正常的mysql 5.6.13作如下编码规范，操作如下：（-d 表示只导出表结构，不导出数据。 -t是只导出结构。）<br/>1&gt; 以latin1导出表结构和数据（也有分开导出，对latin1作替换其中表结构定义中的字符集为新的字符集utf8）：<br/>步骤如下：<br/>（1）这儿一定要是latin1的，否则导出来的是乱码，加入mysqldump参数如下：<br/>sed -i s/CHARSET=latin1/CHARSET=utf8/g `grep -rl &quot;CHARSET=latin1&quot; justwinitData22.sql `<br/>（2）对第1步里export出来里面的表结构定义中的字符集由latin1替换为新的字符集utf8：<br/>/usr/local/webserver/mysql/bin/mysqldump -uroot&nbsp;&nbsp;--default-character-set=latin1&nbsp;&nbsp;--no-create-info justwinit_mysql&nbsp;&nbsp;&gt; justwinitData22.sql<br/><br/>2&gt;使用新的字符集创建新的数据库并导入（导入前得转成utf8格式，editplus或UltraEdit把justwinitData22.sql 另存为utf8格式）：<br/>create database justwinit_mysql&nbsp;&nbsp;default charset utf8;<br/><br/>3&gt;确保在vps高版本导入前的sql里加入一行：set names utf8。（我发现这一行直接在sql的terminal里写再source好像不行，以前好像行的，还得写到sql文本里。）<br/>source /tmp/justwinit/justwinitData22.sql <br/>mysql&gt; source /tmp/justwinit/justwinitData22.sql<br/><br/>导入完毕，中文访问就不乱码了，也就Ok了。EOF<br/>参考：<br/>http://blog.chinaunix.net/uid-25266990-id-3344584.html<br/><br/>方案二：<br/>当然，也可以直接select into，后再load 进去：<br/>步骤一 将待导出的数据表的表结构导出（可以用Phpmyadmin、mysqldump等，很简单就不说了），然后将导出的create table语句的CHARSET=latin1改为CHARSET=utf8，在目标库newdbname中执行该create table语句把表结构建好，接下来开始导出-导入数据<br/>步骤二 命令行：进入mysql命令行下，mysql -hlocalhost -uroot -p*** dbname<br/>步骤三 执行SQL select * from tbname into outfile /usr/local/tbname.sql;<br/>步骤四 将tbname.sql转码为utf-8格式，建议使用UltraEditor，可以直接使用该编辑器的转换-&gt;ASCII到UTF-8(Unicode编辑)，或者将文件另存为UTF-8(无BOM)格式<br/>步骤五 在mysql命令行下执行语句 set character_set_database=utf8;&nbsp;&nbsp;注：设置mysql的环境变量，这样mysql在下一步读取sql文件时将以utf8的形式去解释该文件内容<br/>步骤六 在mysql命令行下执行语句 load data infile tbname.sql into table newdbname.tbname;<br/><br/>摘自：http://www.2cto.com/database/201102/84121.html<br/><br/>相关中文乱码及文件编码转换成utf8的工具技巧介绍，附录：<br/>（1）中文在linux上用vi和less查看乱码的设置：<br/>在Linux上看utf8的文件，一个是SecureCRT高架，一个是vim的设置：:set fileencoding=utf-8。<br/>想用less命令查看的时候，就先执行这个命令，然后再用less查看：<br/>export LESSCHARSET=latin1<br/>这样用less查看的大部分都没问题了,但是存在某些行太长自动换行后乱码的情况。这是因为每个汉字由多个字节组成，在行尾被截断了,下一行都有问题，你需要手工调整一下客户端的宽度就可以了。<br/> <br/>想用VI查看的时候，在打开文本之后的VI里进行如下设置：<br/>:set encoding=utf-8 termencoding=latin1<br/>注意那个encoding是要查看文本的编码格式，一般就是服务器默认编码。<br/>摘自：http://www.myexception.cn/linux-unix/1662792.html<br/><br/>（2）linux下如何做编码转换成utf8的办法：<br/>wget http://pkgs.repoforge.org/enca/enca-1.10-1.el6.rf.x86_64.rpm<br/>enca -L zh_CN -x UTF-8 file&nbsp;&nbsp; #将file转换成utf8的编码格式 也能转成utf8格式：enca-1.10-1.el6.rf.x86_64。<br/>enca的用法：<br/>enca -L zh_CN file&nbsp;&nbsp;&nbsp;&nbsp;#查看file的编码格式<br/>enca -L zh_CN -x UTF-8 file&nbsp;&nbsp; #将file转换成utf8的编码格式<br/>enca -L zh_CN -x UTF-8 file1 file2&nbsp;&nbsp; #转换之后存成file2文件，不覆盖file1<br/>不过用的时候发现有一部分文件无法传转，具体原因不祥，不过enca会把无法转换的文件告诉你的。对于这些不能转的文件，可以用gedit另存为的方式转，虽然这法笨点，但挺好使的。（上面我就是通过editplus别存为转的，UltraEdit也成。）<br/>实践如下：<br/>[root@jackxiang justwinit]# enca -L zh_CN&nbsp;&nbsp;justwinitData22.sql <br/>Universal transformation format 8 bits; UTF-8<br/>&nbsp;&nbsp;Surrounded by/intermixed with non-text data<br/>[root@jackxiang justwinit]# enca -L zh_CN&nbsp;&nbsp;justwinitData21.sql&nbsp;&nbsp;<br/>Universal transformation format 8 bits; UTF-8<br/><br/>enca实践内容来自：http://zhan.renren.com/itbegin?gid=3602888498000703772&amp;checked=true<br/>
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [实践OK]如何把早期bo-blog里latin1的MYSQL编码转换为全utf8编码格式。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>