使用SecureCrt 连 linux 现现乱码write error, conversion failed (make 'fenc' empty to override)的解决

jackxiang 2012-7-21 11:23 | |
今天在FreeBSD上调试代码时,突然我的jar出现了这个错误!上网找了好多资料没有找到解决的办法,后来问同事才解决 了这个问题!(*^__^*) 嘻嘻……
问题:E513: write error, conversion failed (make 'fenc' empty to override)"
原因:新建的文件编码有问题。
解决办法:
先查看一下当前的编码:
:set fenc?
如果不是utf-8的编码格式,用下面的命令改成utf-8的格式
:set fileencoding=utf-8
就可以解决了!我的问题是这样解决的!仅供参考!


问题:SecureCrt终端上出现乱码,具体表现有:
1、tail log 汉字无法正确显示
2、当db中有汉字时无法正确显示
3、无法从SecureCrt上正确复制汉字
4、vim打开文本出现乱码
5、vim 打开代码文件,无法硬编码汉字,出现如下提示:
"char2py.cpp" E513: write error, conversion failed (make 'fenc' empty to override)
储备知识:
1、首先了解下什么是locale,参考资料:http://www.linuxso.com/linuxpeixun/13686.html
2、影响到显示乱码的部分有系统的locale设置、SecureCrt本身的设置、vim的设置、mysql的设置……总之任何一个地方都有可能导致乱码。
3、分情况来讨论:
1)tail log 中的汉字为乱码。
首先确认下locale中所使用的编码方式,公司默认设置为en_ZH.UTF-8,即使用UTF-8的编码方式。
查看SercureCrt的设置,Session Option -> Terminal -> Appearance ->Fonts里面字体选择“新宋体”(这个字体通常不会出现乱码),Character encoding选择UTF-8即可。目的就是保证SecureCrt使用的编码方式与locale使用的编码方式一致。
注:通常情况下Character encoding选择Default即可。
2)vim 中汉字为乱码。
在.vimrc文件中添加如下设置:
set fileencodings=euc-cn,utf-8,gb2312,gbk,gb18030
set fileformats=unix
set encoding=prc
各选项具体表示什么意思可以自己百度:)
其中fileencodings后面的选项的顺序也是有关系的,建议把系统的locale使用的字符集放在最前面。
3)mysql中汉字为乱码。
首先确认所查看的表使用的编码方式,用命令“show create table xxx” 可以查看相应的编码方式。
这里又分为两种情况:
(1)在终端用mysql -uroot -hhost -ppsw 直接连mysql。
这种情况下首先保证SecureCrt的Character encoding与mysql表的编码方式一致,如果mysql是utf-8编码则SecureCrt也要选择utf-8,如果mysql是gbk时通常SecureCrt选择Default即可。
mysql -uroot --default-character-set=utf8(gbk等等) 或者 mysql -uroot 连接完毕后 使用命令charset utf8(gbk)也可以。
(2)在程序中使用mysqlclient api操作mysql。
程序中设置的编码必须要与表一致,即调用后mysqlclient.init(user, psw, host, port),要再调用一次mysqlclient.charset("utf8")才可以。
总结:mysql这里出现乱码的原因是 mysqld 根据表创建时使用的编码方式存储、解释相应的汉字。当mysqlclient发起请求时如果没有设置charset,则会按照默认的方式解释mysqld返回的数据。当两边的编码方式不一致时自然无法正确解析。

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/5424/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2012-7-21 11:25
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]