|
发表于 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下可以正常显示表情。 |
|