<?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/4918/</link>
<title><![CDATA[[个人研究]对SecureCRT下Linux中文名称及内容包含中文的修改及下载到Windows下的兼容不出乱码的研究备案]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Wed, 11 Jan 2012 07:51:47 +0000</pubDate> 
<guid>http://jackxiang.com/post/4918/</guid> 
<description>
<![CDATA[ 
	1、首先是Linux要支持汉字字符集：一般UTF-8。CentOS在etc/sysconfig/i18n中，Suse Enterprises Linux在 /etc/sysconfig/language中。<br/>把LANG改成支持UTF-8的字符集<br/>如：<br/>LANG=”zh_CN.utf8″或者LANG=”en_US.utf8″<br/>查看服务器字符集1、查看当前服务器字符集&nbsp;&nbsp;#locale ，查看服务器支持的字符集&nbsp;&nbsp;#locale -a。<br/>让设置的字符集生效：source 文件名，另也可在 /etc/profile (全局) 或者 ~/.bashrc (单个用户)设置 Linux 系统的环境变量。<br/>2、再当然就是在SecureCRT下功夫；菜单下有：选项-&gt;会话选项-&gt;外观-&gt;字符编码：选择UTF-8<br/>到这里的时候发现我的汉字还是乱码：字体选择支持汉语的字体。选择好字符集就搞定了！<br/>Eof<br/>实战开始，CentOS和Suse Enterprises Linux下的实际操作如下：<br/>一：检查系统是否支持上文说的两种字体：<br/>locale -a&#124;grep zh_CN.utf8<br/>zh_CN.utf8<br/>或者：<br/>locale -a&#124;grep en_US.utf8<br/>en_US.utf8&nbsp;&nbsp;两种都支持，选一种即可。<br/>二：设定如下：<br/>（1）CentOS：<br/>vi /etc/sysconfig/i18n<br/>#LANG=&quot;en_US.UTF-8&quot;<br/>LANG=&quot;zh_CN.utf8&quot;<br/>以上设定：LANG就全部变成了：zh_CN.utf8<br/>再：source /etc/sysconfig/i18n<br/>（2）Suse Enterprises，而这个得两个变量，如下：<br/>vi&nbsp;&nbsp;/etc/sysconfig/language<br/>LC_ALL=zh_CN.utf8<br/>LANG=zh_CN.utf8<br/>export LC_ALL LANG<br/>source&nbsp;&nbsp;/etc/sysconfig/language<br/>（3）查看两个系统的配置是否生效，以下说明都生效了。<br/>root@116.255.139.240:/home/jackxiang/download# locale<br/>LANG=zh_CN.utf8<br/>LC_CTYPE=&quot;zh_CN.utf8&quot;<br/>LC_NUMERIC=&quot;zh_CN.utf8&quot;<br/>LC_TIME=&quot;zh_CN.utf8&quot;<br/>LC_COLLATE=&quot;zh_CN.utf8&quot;<br/>LC_MONETARY=&quot;zh_CN.utf8&quot;<br/>LC_MESSAGES=&quot;zh_CN.utf8&quot;<br/>LC_PAPER=&quot;zh_CN.utf8&quot;<br/>LC_NAME=&quot;zh_CN.utf8&quot;<br/>LC_ADDRESS=&quot;zh_CN.utf8&quot;<br/>LC_TELEPHONE=&quot;zh_CN.utf8&quot;<br/>LC_MEASUREMENT=&quot;zh_CN.utf8&quot;<br/>LC_IDENTIFICATION=&quot;zh_CN.utf8&quot;<br/>LC_ALL=zh_CN.utf8<br/><br/>WEB_39_74_sles10sp1:/home/jackxiang/download # locale<br/>LANG=zh_CN.utf8<br/>LC_CTYPE=&quot;zh_CN.utf8&quot;<br/>LC_NUMERIC=&quot;zh_CN.utf8&quot;<br/>LC_TIME=&quot;zh_CN.utf8&quot;<br/>LC_COLLATE=&quot;zh_CN.utf8&quot;<br/>LC_MONETARY=&quot;zh_CN.utf8&quot;<br/>LC_MESSAGES=&quot;zh_CN.utf8&quot;<br/>LC_PAPER=&quot;zh_CN.utf8&quot;<br/>LC_NAME=&quot;zh_CN.utf8&quot;<br/>LC_ADDRESS=&quot;zh_CN.utf8&quot;<br/>LC_TELEPHONE=&quot;zh_CN.utf8&quot;<br/>LC_MEASUREMENT=&quot;zh_CN.utf8&quot;<br/>LC_IDENTIFICATION=&quot;zh_CN.utf8&quot;<br/>LC_ALL=zh_CN.utf8<br/>最后，看中文显示是否正常：（输入中文是否正常，删除中文是否一次可以删除一个中文，用vim是否可以输入中文，查看是否正常，及下载后Windows下是否正常显示）<br/>root@116.255.139.240:/home/jackxiang/download# ls 审批流程SQL.txt<br/>审批流程SQL.txt<br/>...<br/>27 update t_process set f_Status = &#039;error&#039; where f_Id = 181<br/>28 jack=向东阳&nbsp;&nbsp;(中文输入正常，删除也正常)<br/>下载后打开是否正常：<br/>root@116.255.139.240:/home/jackxiang/download# sz 审批流程SQL.txt<br/>editplus打开：jack=向东阳 正常。<br/>本文件是Utf8，别存为ANSI后，再rz上去测试看显示及修改是否正常：<br/>CentOS正常显示：jack=向东阳 正常<br/>vim显示版本 7.0.237 ：set fileencoding<br/>fileencoding=euc-cn 显示正常，而Suse EnterPrise下Vim 版本&nbsp;&nbsp; 6.4.6&nbsp;&nbsp;显示不正常：jack=Ïò¶«Ñô Õý³£<br/>set fileencoding 为：<br/>fileencoding=latin1<br/>很显然是由于vim的默认配置有些问题，可能你也需要做下配置修改，如下：<br/>vi ~/.vimrc<br/>加入或者修改：<br/><textarea name="code" class="html" rows="15" cols="100">
set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set fileformats=unix
set fileencoding=utf-8
</textarea><br/>再用vim查看时：jack=向东阳 正常显示。删除也是一次删除一个中文，添加一个中文，sz下来后查看：<br/>jack=向东阳 正常吗？<br/>其实这个新宋体的字体也可以换的，我换成了：Yahei Mono ，网上下的，也不不错，中文也没有问题。<br/>说明都是OK的，回顾一下，系统编码，vim编辑器编码，以及SecureCRT的编码，<br/>如果再来个Mysql呢？Utf8的还好这样就Ok了（character_set_database&nbsp;&nbsp;&nbsp;&nbsp;utf8），我们设置的都是Utf8，但是要是GBK的编码呢？怎么办呢？晕了吧，如下：<br/>show variables like &#039;char%&#039;;<br/>mysql&gt; show variables like &#039;char%&#039;;<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;&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;&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;&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; latin1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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_filesystem &#124; binary&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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_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;&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;&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;&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/mysql/charsets/ &#124;<br/>+--------------------------+----------------------------------------+<br/>这种情况的话一看就是Mysql的默认编码latin1，这各情况得确保连接参数（就是你的SecureCRT）与这个字段字符集一致。<br/>尽管可以用 set names &#039;charsetname&#039; 来改变设置，比如， set names &#039;gbk&#039;;<br/>这条命令会同时修改 character_set_client,character_set_connection,character_set_results<br/>例如：SecureCRT设置的字符编码为 UTF-8，则需要用 set names &#039;utf8&#039;;才能保证SecureCRT既能显示中文，也可以使用带有中文的SQL命令。<br/>话这样说，在实际中，还真有GBK的默认，这下就不好搞了，你再怎么设置也无济于事，所以这种情况得开两个secureCRT，一个兼容utf8，一个兼容GBK。<br/>这块涉及到中文查询，返回，多个字符集的转化，还涉及到系统SecureCRT等的转化，淘宝DBA团队前好像写过一篇文章，也收录了，当时看明白了，但忘记了:http://jackxiang.com/post/1387/，呵呵，这块好像还是有点薄弱，希望有能统一的兄弟给研究一下，谢谢。<br/>但是，这样还是会乱码，得修改SecureCRT的编码为默认：再当然就是在SecureCRT下功夫；菜单下有：选项-&gt;会话选项-&gt;外观-&gt;字符编码：选择默认。<br/>mysql&gt; select * from t_project &#92;G; 中文正常了，ProjectName: 临时产品 ...<br/>中文查询：<br/>mysql&gt; select * from t_project where ProjectName=&#039;项目234&#039;&#92;G;<br/>*************************** 1. row ***************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f_Id: 72<br/> ProjectName: 项目234<br/>查询Ok，应该插入也不成问题。。。EOF<br/><br/><br/><br/><br/>后记摘抄自同事的说法：<br/>使用mysql好久了，经常被中文乱码搞的很郁闷，在经历了N久的折磨后，现将解决乱码的流程共享出来:<br/>1.首先要确认连接数据库的字符集是否一致。<br/>2.查询前，要确认与表的字符集一致。<br/>3.如果表里面的字符集确实不对应，尝试使用CONVERT（）函数<br/>4.检查你的页面编码、meta 声明、数据库连接方式（SET NAMES）是否一致，如果你的页面和meta设置为gb2312，但是却在程序中设置 SET NAMES utf8，同样会导致乱码。原因是如果页面设置为 gb2312 ，那么表单中的数据也是按照 gb2312 提交，但是程序却要求按照 utf8 去处理，结果自然是乱码。<br/>5.检查你的文件存储编码是否和 meta 声明的一致，假如你的文件是按照 utf-8 编码存储，但是 meta 却声明为 gb2312 ，将导致乱码。<br/>确认以上三点，基本上可以解决90%的乱码问题。<br/>Tags - <a href="http://jackxiang.com/tags/%25E4%25B8%258B%25E8%25BD%25BD/" rel="tag">下载</a> , <a href="http://jackxiang.com/tags/windows/" rel="tag">windows</a> , <a href="http://jackxiang.com/tags/linux/" rel="tag">linux</a> , <a href="http://jackxiang.com/tags/%25E4%25B8%25AD%25E6%2596%2587/" rel="tag">中文</a>
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/4918/#blogcomment63418</link>
<title><![CDATA[[评论] [个人研究]对SecureCRT下Linux中文名称及内容包含中文的修改及下载到Windows下的兼容不出乱码的研究备案]]></title> 
<author>hxngb7uf &lt;gono31@mail114.net&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 09 Feb 2012 17:05:41 +0000</pubDate> 
<guid>http://jackxiang.com/post/4918/#blogcomment63418</guid> 
<description>
<![CDATA[ 
	辛苦了，祝大家新春快乐
]]>
</description>
</item>
</channel>
</rss>