请大家帮帮忙-Symbian ConvertFromUnicodeToUtf8 乱码问题
各位大侠,请帮帮忙
我用的是Symbian 3rd,遇到个非常棘手的问题。
我用了CAknSettingItemList从手机上输入了汉字存放在了TBuf<20>中
现在需要把这个输入传递到服务器,服务器端用UTF-8接收。
所以我在发送前也需要把字符串转成UTF-8。
我在转码前跟踪程序发现字符串是Unicode编码。我检验了一下,从手机端输入汉字“一”,在TBuf<20>中存储的是“\x4E00”,查了一下,这是“一”正确的Uicode编码。
所以我在发送前用ConvertFromUnicodeToUtf8方法进行转码,这时跟踪程序就发现字符串已经是乱码了。这是为什么呢?
[解决办法]
"像汉字,但不知道是否是汉字" 这个比较经典~
TInt ret = -1;
TBuf<20> postdate;
postdate.Append(_L("\x4E00")); //汉字“一”
TBuf8<40> postdate8;
ret = CnvUtfConverter::ConvertFromUnicodeToUtf8(postdate8, postdate);
执行上面的代码后,检查一下:
1. ret==0? (0表示成功)
2. 在调试状态,查看postdate8变量,postdate8[0]=0x80,postdate8[1]=0xB8,postdate8[2]=0xE4 //汉字“一”的UTF编码
只要满足上面的条件,你客户端转码就是正常的,要是服务器不能正常显示中文,那就是服务器的问题了