QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1473|回复: 6

使用leafpad缓解读取文本的编码困扰

[复制链接]
发表于 2009-2-26 09:29:41 | 显示全部楼层 |阅读模式
一直以来编码问题是最烦人的事情,普通国内中文用户使用的文本多是gb18030码,双系统情况下,文本相互复制都会自动转化,浏览器看网页也会自动选择编码,唯有下载的MP3或是纯文本会遇到编码问题,相对来说对于普通用户来说可能遇到编码问题不算太多,但是在使用默认gb码的系统对普通用户是最大限度的减少编码困扰,但对想编写程序的朋友来说却是恶梦一样,kwrite、kate并不会自动识别编码,据说KDE4.2的kwite可以自动识别编码了,可目前还在用KDE3。
leafpad可以自动识别编码,目前我设置用leafpad打开txt和spec文档,c和cpp文件用kwrite打开,kwrite设置默认utf8编码。
发表于 2009-2-28 02:31:37 | 显示全部楼层
kwrite在我这还是不行,无法自动识别编码
kate又被弄到kdesdk的包里去了,不爽阿

还是用vi看不同编码的文本文件来的舒服
回复

使用道具 举报

 楼主| 发表于 2009-3-6 00:34:09 | 显示全部楼层
倒是发现可以用file -bi指令来判断,这样的话可以写一个脚本来解决编码选择。
回复

使用道具 举报

发表于 2009-3-6 10:32:01 | 显示全部楼层
file的效果如何?如果不错,把这部份代码拿出来合并到kwrite里不是更好?
回复

使用道具 举报

 楼主| 发表于 2009-3-6 13:19:02 | 显示全部楼层
把这个存成edit放在/usr/bin,以后打开文件用指令edit ×××,或者建立一个bash脚本/etc/profile.d/alias
把kwrite直接映射成这个脚本。
  1. #!/bin/sh

  2. editor='kwrite'

  3. E=`file -bi "$1"`
  4. if [ "$E" = "text/plain charset=iso-8859-1" ]
  5. then
  6.     $editor $1 --encoding=gb18030&
  7. elif [ "$E" = "text/plain charset=utf-8" ]
  8. then
  9.     $editor $1 --encoding=utf-8&
  10. else
  11.     $editor $1 &
  12. fi
复制代码

[ 本帖最后由 haulm 于 2009-3-6 13:35 编辑 ]
回复

使用道具 举报

发表于 2009-3-6 19:37:41 | 显示全部楼层
这个不难,难的是各种codepage的判断,比如big-5, gb2312, 欧洲的各种iso-8859-n,windows下也只有emeditor能自动探测,不知怎么做到的。另外我想mozilla项目是有相关代码的,不知道怎么能用到编辑器上。
回复

使用道具 举报

 楼主| 发表于 2009-3-11 13:13:31 | 显示全部楼层
我看最弱的可能是kde3的kwrite了,bluefish对编码也是自动识别的。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-23 09:14 , Processed in 0.076392 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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