LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1856|回复: 22

问一个问题,console下面可不可以同时支持utf8和gbk编码的文件?

[复制链接]
发表于 2007-1-17 15:00:42 | 显示全部楼层 |阅读模式
找了好多地方,论坛里面搜索“编码”,都没有找到可以在console下面支持不同编码的文件。
比如两个文件,gbk.file, utf8.file,分别是gbk和utf8编码的。

当locale 的LC_CTYPE设为gbk时, cat utf8.file文件显示乱码 (比如用cat, less 或者more)
export LC_CTYPE="zh_CN.gbk"

当locale的LC_CTYPE设为UTF-8时,cat gbk.file显示乱码。

不知道哪位兄弟知道是否可以让两种编码的文件都正确显示?
发表于 2007-1-17 15:03:27 | 显示全部楼层
iconv 但只能显示吧。。写个自动转来转去的脚本?
回复 支持 反对

使用道具 举报

发表于 2007-1-17 15:10:16 | 显示全部楼层
gbless() {
iconv -f gbk -t utf-8 $1 | less
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-17 15:15:30 | 显示全部楼层
响应真快,呵呵,居然会用iconv

希望cat, 或者less, more命令可以正确显示字体。 如果是编辑的话,可以用vim/gvim, ~/.vimrc中添加下面这行就可以在vim/gvim中正确显示字体了:
set fencs=utf-8,gbk

konsole里面,可以通过菜单“设置”=》“编码”, 来选择合适的编码, 这样不同编码的文件都可以显示出来…… 可是这样在编码未知时,每次用了 cat, more 或者less的时候可能还要先选择编码。 比较麻烦, 不知道能不能象 vim/gvim 一样设置konsole自动识别编码。

iconv可对不同的编码进行转换,如果没有简单的方法,就只好用这个了,
可是如何识别编码,再用iconv(如 iconv -f utf8 -t gbk filename )显示出来呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-17 15:18:05 | 显示全部楼层
大老们都出来了,呵呵, 用conv的话,问题是如何知道文件(from encoding)的编码是utf8还是gbk呢, 我尝试了用od, xxd取出来文件的前面几个字节, 还是没有找到不同。

谢谢关注。
回复 支持 反对

使用道具 举报

发表于 2007-1-17 15:18:28 | 显示全部楼层
不是所有终端仿真器能像konsole一样的。你说的console我还以为是虚拟控制台下用zhcon或cce。
希望cat, 或者less, more命令可以正确显示字体

不明白你的意思,cat和编码是无关的。
回复 支持 反对

使用道具 举报

发表于 2007-1-17 15:19:27 | 显示全部楼层
file是可以判断ansi和utf-8的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-17 15:22:54 | 显示全部楼层
对,和编码无关,就是console/terminal 下面的设置有关(默认为locale的语言设置).

我在kde下面,通常用konsole作为terminal

太棒了,呵呵, 我忘了 file命令, 谢谢seamonkey.
david@roboo:~$ file wap_site.html
wap_site.html: ISO-8859 text

david@roboo:~$ file dictprocess/surname.txt
dictprocess/surname.txt: UTF-8 Unicode text
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-17 15:26:19 | 显示全部楼层
通过file来识别文本文件格式,通过iconv来转换编码,在通过管道传给 less, cat, more 命令,

然后把这3个步骤合并起来,写成shell scripts; 再把less, cat, more 重命名,再作less, cat,more的软链接.

哈哈,这样我们可以轻松地显示不同编码的文件了。

问题完美地解决,结贴,送分……
回复 支持 反对

使用道具 举报

发表于 2007-1-17 15:26:54 | 显示全部楼层
但file有时有限制,比如特定类型的文本文件,如C源码,它给出的结果就不是text了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表