QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 768|回复: 3

我的xchat上公社的irc有部分乱码,大家帮我看看

[复制链接]
发表于 2003-11-5 10:31:16 | 显示全部楼层 |阅读模式
debian/testing
xchat 2.0.2
已设置字体Simsun 10,Bitstream Vera Sans 10
登陆后就发现有乱码
效果见图
该在哪儿再设置字体吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2003-11-5 11:11:06 | 显示全部楼层
这基本上是服务器上设定错误引起的,下面我来详细解释一下

2.0.2 以及之前的 xchat 使用一次 g_locale_to/from_utf8 函数来将收到的 locale encoding 字符串转换为 utf-8 以供显示。然而,这样的转换可能会失败,比如当前 locale 是中国,然而输入字符串却并非 GB 码。如果转换失败,xchat 将 fallback 到用 iso-8859 来转换输入字符串,这是不会失败的。

不幸的是,g_locale_to/from_utf8 函数有这样的特性,只要输入字符串中有一个非法的字符,整串都不再翻译了,返回失败。这是它告诉程序发现非法字符的方式。而用 iso-8859 转出来的结果,就是我们俗称的乱码。

那么,是什么导致它收到了非法字符串呢?irc.linuxfans.org 事实上的标准就是 GB 码系列。但它还有一个特性,就是由服务器端来维护各个频道的当前状况。如果服务器重启,ircd 会将关机前各个频道的属性、标题等全部恢复回来。在恢复标题时,此程序有个最大长度限制,如果关机前该频道的标题过长,则会被截断。不幸的是,截断时它并未考虑多字节变长编码,本例就是在串尾,截断在了一个汉字的中间,从而导致整串字符成了非法字符串,而成了乱码。

因此严格说来,xchat 本身的处理并无错误,只是不够“强壮”。从 2.0.3 开始,它开始会尝试剔除串中的非法字符,然后再转换,所以之后的版本,都能够处理这样的状况,不再因一个尾巴而放弃整个字符串。

最新版的 xchat 为 2.0.5,rpm 可以从这里拿到
回复

使用道具 举报

 楼主| 发表于 2003-11-5 12:04:02 | 显示全部楼层
pretty good!!!!!!!!!!!!!!
回答了我所有的疑问
因为发现近#linuxfans频道就是正常的
这就去装个新版的
thx very much !!
回复

使用道具 举报

发表于 2003-11-11 21:43:53 | 显示全部楼层
wine and mirc working......
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-25 23:19 , Processed in 0.042676 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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