QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 833|回复: 6

yunfan 进来一下,有个问题,关于表情

[复制链接]
发表于 2004-12-12 18:16:53 | 显示全部楼层 |阅读模式
我跟eva, lumaqq都进行了测试。表情传递是兼容的。

但是,我用eva或者lumaqq或者kopete plugin发送表情给windows下的,却是错误的。

并且luma, eva都不支持冒号-D,这样的表情格式,但是win是支持的。

是不是,这里的表情兼容代码有点问题?

本帖子中包含更多资源

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

×
 楼主| 发表于 2004-12-12 18:27:13 | 显示全部楼层
这是跟eva双向通讯的结果

本帖子中包含更多资源

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

×
回复

使用道具 举报

发表于 2004-12-12 18:47:42 | 显示全部楼层
刚才在lab, 好了,现在到家了。

这样的, 我估计是编码的方法肯定是对的,可能是转换内码不当的原因。
但是,我的朋友中(用windows)有可以看到的,也有看不到的。 但是,如果在
但是双击聊天记录,一定可以正常在聊天窗口中看到。这个说明了编码的正确性。

我估计是因为从unicode 到 gbk转换的时候,有些问题。


我查一下windows的表情解码以后的详细数据, 应该可以解决。

还有就是输入像: D 之类的不显示的问题。 因为我没有写解析的部分,
只要加上一点解析的部分就可以了。 win-qq应该是把: D解析为表情编码了
像/xin 之类的。 需要自己写解析换成表情编码就可以了。
回复

使用道具 举报

 楼主| 发表于 2004-12-12 20:06:47 | 显示全部楼层
关于D之类的,luma和eva都没有作,这就是以给字典的时,关键是不知道,QQ那么多的表情到底是怎么跟符号对应的。

我google找了一下对照表,没有发现,如果能对应起来,建个词典就OK了。

kopete比较特殊,因为它支持多种simley 主题的选择,有自己的符号对照引擎。

如果是一般的simley theme,根本没有办法支持全部的QQ表情。

我刚才修改了一下代码,将受到的message专程KopeteMessage::RichText,使用自己的qq-smileys来显示。这样,也就可以在不论kopete本身使用什么simley theme的情况下,永远正确显示收到的qq smiley。


但是,发送还是有写问题,如果使用冒号-D之类的对照引擎,纯文本发送。luma, eva, 不知道gaim-qq怎么样,应该也不可以。所以,最好的办法,还是建立一个对应词典。这样发送的时候永远使用纯文本的消息就OK了。

对方不论是什么客户端,都能正确的显示。

目前这一点,如果在kopete中,使用我自己定义的qq-smileys引擎,发送给luma, eva都没有问题,估计gaim-qq也应该没事。

但是,这个qq-smileys theme又不能用在其他的message protocol里,麻烦。
回复

使用道具 举报

 楼主| 发表于 2004-12-12 20:12:36 | 显示全部楼层
[quote:0a2f274d29="cjacker"]关于D之类的,luma和eva都没有作,这就是以给字典的时,关键是不知道,QQ那么多的表情到底是怎么跟符号对应的。

我google找了一下对照表,没有发现,如果能对应起来,建个词典就OK了。

kopete比较特殊,因为它支持多种simley 主题的选择,有自己的符号对照引擎。

如果是一般的simley theme,根本没有办法支持全部的QQ表情。

我刚才修改了一下代码,将受到的message专程KopeteMessage::RichText,使用自己的qq-smileys来显示。这样,也就可以在不论kopete本身使用什么simley theme的情况下,永远正确显示收到的qq smiley。


但是,发送还是有写问题,如果使用冒号-D之类的对照引擎,纯文本发送。luma, eva, 不知道gaim-qq怎么样,应该也不可以。所以,最好的办法,还是建立一个对应词典。这样发送的时候永远使用纯文本的消息就OK了。

对方不论是什么客户端,都能正确的显示。

目前这一点,如果在kopete中,使用我自己定义的qq-smileys引擎,发送给luma, eva都没有问题,估计gaim-qq也应该没事。

但是,这个qq-smileys theme又不能用在其他的message protocol里,麻烦。[/quote]

另外就是目前kopete不支持为每个协议自动设置不同的default smileys theme。
这个如果能够实现,也比较方便,只要是qq协议,就使用qq-smileys就可以了。

不会影响其他协议。

估计这个需求需要向kopete developers发出request了。


另:

eva有几个BUG.

1,下线时候应该将所有的user face置为offline。

2,crash较多,另friend list的管理好像有点乱。
回复

使用道具 举报

发表于 2004-12-12 20:32:13 | 显示全部楼层
我也在想这个问题, 正在研究winQQ的消息内容。
先解决在win下正常显示smiley的问题。

我会把新的libeva中发送部分,做成支持文本表情的, 用户不用具体关心
表情的转换了。

另,我这里Eva现在几乎就没有crash, 所以有时候很难找到问题。
不过,里面好些地方写的不规范, 正在全部重构,重写中。
回复

使用道具 举报

发表于 2004-12-13 00:57:39 | 显示全部楼层
已经找到问题所在,smiley图标可以正常在windows下显示了。

字体名一定要设置成GB内码的windows有的字体, 字体名对于正确显示表情很重要。

在SendIMPacket.cpp中改两个地方,

1。 构造函数的变量初始化中, 那个fontName(“宋体”) , 把这个删掉。

2。 在方法initTextContent(unsigned char *buf)中:


[code:1]
        QCString fchar = fontName.local8Bit();
        memcpy(buf+pos,fchar.data(), fchar.size());
        
        pos+= (fchar.size()-1);
[/code:1]

这三行换为以下四行,(删掉上面三行,再在加上以下四行代码):
[code:1]
        buf[pos++] = 0xcb;
        buf[pos++] = 0xce;
        buf[pos++] = 0xcc;
        buf[pos++] = 0xe5;
[/code:1]

其实,是gb内码的“宋体”两个字, 因为程序文件是utf8编码,“宋体”两个字
发送的时候,没有转对内码。

其他的不用动。
你试一下, 看是否在windows下可以正常显示表情。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-26 23:29 , Processed in 0.048776 second(s), 17 queries .

© 2021 Powered by Discuz! X3.5.

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