设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 发行版讨论区 —— LinuxSir.cn
›
Slackware Linux
›
问一个问题,console下面可不可以同时支持utf8和gbk编码 ...
1
2
3
/ 3 页
下一页
返回列表
查看:
1856
|
回复:
22
问一个问题,console下面可不可以同时支持utf8和gbk编码的文件?
[复制链接]
euler
euler
当前离线
积分
223
IP卡
狗仔卡
发表于 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显示乱码。
不知道哪位兄弟知道是否可以让两种编码的文件都正确显示?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
biAji
biAji
当前离线
积分
901
IP卡
狗仔卡
发表于 2007-1-17 15:03:27
|
显示全部楼层
iconv 但只能显示吧。。写个自动转来转去的脚本?
回复
支持
反对
使用道具
举报
显身卡
seamonkey
seamonkey
当前离线
积分
2746
IP卡
狗仔卡
发表于 2007-1-17 15:10:16
|
显示全部楼层
gbless() {
iconv -f gbk -t utf-8 $1 | less
}
回复
支持
反对
使用道具
举报
显身卡
euler
euler
当前离线
积分
223
IP卡
狗仔卡
楼主
|
发表于 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 )显示出来呢?
回复
支持
反对
使用道具
举报
显身卡
euler
euler
当前离线
积分
223
IP卡
狗仔卡
楼主
|
发表于 2007-1-17 15:18:05
|
显示全部楼层
大老们都出来了,呵呵, 用conv的话,问题是如何知道文件(from encoding)的编码是utf8还是gbk呢, 我尝试了用od, xxd取出来文件的前面几个字节, 还是没有找到不同。
谢谢关注。
回复
支持
反对
使用道具
举报
显身卡
seamonkey
seamonkey
当前离线
积分
2746
IP卡
狗仔卡
发表于 2007-1-17 15:18:28
|
显示全部楼层
不是所有终端仿真器能像konsole一样的。你说的console我还以为是虚拟控制台下用zhcon或cce。
希望cat, 或者less, more命令可以正确显示字体
不明白你的意思,cat和编码是无关的。
回复
支持
反对
使用道具
举报
显身卡
seamonkey
seamonkey
当前离线
积分
2746
IP卡
狗仔卡
发表于 2007-1-17 15:19:27
|
显示全部楼层
file是可以判断ansi和utf-8的。
回复
支持
反对
使用道具
举报
显身卡
euler
euler
当前离线
积分
223
IP卡
狗仔卡
楼主
|
发表于 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
回复
支持
反对
使用道具
举报
显身卡
euler
euler
当前离线
积分
223
IP卡
狗仔卡
楼主
|
发表于 2007-1-17 15:26:19
|
显示全部楼层
通过file来识别文本文件格式,通过iconv来转换编码,在通过管道传给 less, cat, more 命令,
然后把这3个步骤合并起来,写成shell scripts; 再把less, cat, more 重命名,再作less, cat,more的软链接.
哈哈,这样我们可以轻松地显示不同编码的文件了。
问题完美地解决,结贴,送分……
回复
支持
反对
使用道具
举报
显身卡
seamonkey
seamonkey
当前离线
积分
2746
IP卡
狗仔卡
发表于 2007-1-17 15:26:54
|
显示全部楼层
但file有时有限制,比如特定类型的文本文件,如C源码,它给出的结果就不是text了。
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
3
/ 3 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表