LinuxSir.cn,穿越时空的Linuxsir!

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

怎样判断一个文本文件的编码方式?

[复制链接]
发表于 2006-3-18 18:11:59 | 显示全部楼层 |阅读模式
怎样判断一个文本文件的编码方式? 谢谢!
发表于 2006-3-18 22:12:24 | 显示全部楼层
估计不行,好像gedit可以自动判断(这是我觉得gedit唯一值得称赞的地方),用gedit打开,然后选另存为,看默认的编码是什么,应该就是文件的编码了。就是不知道gedit是怎么判断出来的。
回复 支持 反对

使用道具 举报

发表于 2006-3-19 10:17:52 | 显示全部楼层
试了一下
file好象可以
回复 支持 反对

使用道具 举报

发表于 2006-3-19 10:25:04 | 显示全部楼层
file 不能
file *
gb18030:                      ISO-8859 text
gb2312:                       ISO-8859 text
gbk:                          ISO-8859 text
utf-8:                        UTF-8 Unicode text
其中几个文件分别是使用不同编码保存的同一个文件。
回复 支持 反对

使用道具 举报

发表于 2006-3-19 10:29:51 | 显示全部楼层
问一下gedit的作者吧。
回复 支持 反对

使用道具 举报

发表于 2006-3-19 11:34:22 | 显示全部楼层
firefox中有一个库是用来自动判断编码的,C/C++写的,也有人做了它的python绑定。如果仅仅是中文的话,看看zh-autoconvert的源码,或许有些帮助。
回复 支持 反对

使用道具 举报

发表于 2006-3-19 18:48:49 | 显示全部楼层
Post by pluskid
估计不行,好像gedit可以自动判断(这是我觉得gedit唯一值得称赞的地方),用gedit打开,然后选另存为,看默认的编码是什么,应该就是文件的编码了。就是不知道gedit是怎么判断出来的。


用GEDIT 打开文件,然后把鼠标放在那个文件的标签上,就会显示出文件的编码方式。

gedit 真是太好了。我通过SMB访问WINDOWS下的文件(我的LOCAL是UTF8),用GEDIT直接打开那些文本文件,重没见过乱码。
而kwrite就有点另我失望了,不能自动识别,还要手动一下。就算能显示,显示效果也没GEDIT好,字体破碎,还有莫名其妙的小网格出现。真搞不懂!~(或许我太菜了,不会设置)。
回复 支持 反对

使用道具 举报

发表于 2006-3-19 20:02:52 | 显示全部楼层
如果是zh类的locale
gedit能自动识别
但是如果是en_US.utf-8的locale
gedit就识别不出来了
所有的GB*类的编码文件都是ISO-8859 text
而且是乱码
回复 支持 反对

使用道具 举报

发表于 2006-3-19 23:44:17 | 显示全部楼层
vi 也可以吧。。:)。。
回复 支持 反对

使用道具 举报

发表于 2006-3-20 12:54:22 | 显示全部楼层
Post by aran
用GEDIT 打开文件,然后把鼠标放在那个文件的标签上,就会显示出文件的编码方式。

gedit 真是太好了。我通过SMB访问WINDOWS下的文件(我的LOCAL是UTF8),用GEDIT直接打开那些文本文件,重没见过乱码。
而kwrite就有点另我失望了,不能自动识别,还要手动一下。就算能显示,显示效果也没GEDIT好,字体破碎,还有莫名其妙的小网格出现。真搞不懂!~(或许我太菜了,不会设置)。

“莫名其妙的小网格”是显示的“软换行”,就是一行屏幕显示不下,kwrite自动折断一行过来的标记,去掉自动换行选项就可以了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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