LinuxSir.cn,穿越时空的Linuxsir!

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

kde的一个小patch: gb2312->gbk

[复制链接]
发表于 2003-10-18 01:38:53 | 显示全部楼层 |阅读模式
起因是这样的,很多页面用的都是charset=gb2312,这样在浏览的时候,如果有GBK汉字,就会造成乱码,每次都要手工调整编码

修改很简单
  1. --- kdelibs.orig/kdecore/kcharsets.cpp  2003-09-07 21:37:20.000000000 -0700
  2. +++ kdelibs/kdecore/kcharsets.cpp   2003-10-15 18:16:20.000000000 -0700
  3. @@ -552,8 +552,11 @@
  4.      if (name.isEmpty()) {
  5.        ok = false;
  6. -      return QTextCodec::codecForName("iso8859-1");
  7. +      return QTextCodec::codecForName("gbk");
  8.      }
  9. +
  10. +   if ( name == "gb2312" )
  11. +       name = "gbk";
  12.      codec = QTextCodec::codecForName(name);
复制代码

这一段是基于kde cvs的,不过3.1.x应该也适用吧。。
发表于 2003-10-18 10:04:01 | 显示全部楼层
这个东东怎么使用啊?
发表于 2003-10-19 08:08:13 | 显示全部楼层
patch -np0 < xxx.patch
或者
patch -np1 < xxx.patch
发表于 2003-10-20 16:10:30 | 显示全部楼层

回复: kde的一个小patch: gb2312-&gt;gbk

改成这样是不是更好一些?
  1. --- kdelibs.orig/kdecore/kcharsets.cpp  2003-09-07 21:37:20.000000000 -0700
  2. +++ kdelibs/kdecore/kcharsets.cpp   2003-10-15 18:16:20.000000000 -0700
  3. @@ -552,8 +552,11 @@
  4.      if (name.isEmpty()) {
  5.        ok = false;
  6. -      return QTextCodec::codecForName("iso8859-1");
  7. +      return QTextCodec::codecForLocale();
  8.      }
  9. +
  10. +   if ( name == "gb2312" )
  11. +       name = "gb18030";
  12.      codec = QTextCodec::codecForName(name);
复制代码
 楼主| 发表于 2003-10-20 16:17:14 | 显示全部楼层
en. 你的改法更好一些 ;)
发表于 2003-10-20 16:27:06 | 显示全部楼层
不知道能不能提交给KDE
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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