• 4721阅读
  • 1回复

[提问]qt 应用程序与调用的库文件编码不一致 [复制链接]

上一主题 下一主题
离线haoyunp
 
只看楼主 倒序阅读 楼主  发表于: 2011-08-26
我的应用程序原来的编码为UTF-8,加入的syszuxpinyin拼音输入法的库文件采用的编码为GB2312,我该怎样对编码进行转换呢?


syszuxpinyin的编码应该是GB2312,而我qt4.5的应用程序中用的是UTF-8才能显示中文,要想应用这个输入法是不是应该转换编码呀?
在我的应用程序中:
QTextCodec::setCodecForTr( QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB18030"));
才能正常显示中文,但是输入法就不能显示中文了。

如果QTextCodec::setCodecForTr( QTextCodec::codecForName("GB2312"));,则输入法可以,程序中不能显示中文。应该怎么解决呢?
离线dbzhang800

只看该作者 1楼 发表于: 2011-08-27
引用楼主haoyunp于2011-08-26 18:31发表的 qt 应用程序与调用的库文件编码不一致 :
我的应用程序原来的编码为UTF-8,加入的syszuxpinyin拼音输入法的库文件采用的编码为GB2312,我该怎样对编码进行转换呢?
syszuxpinyin的编码应该是GB2312,而我qt4.5的应用程序中用的是UTF-8才能显示中文,要想应用这个输入法是不是应该转换编码呀?
在我的应用程序中:
.......

不清楚 syszuxpinyin 是什么东西,随便说一点自己的感觉:

如果一个Qt的第三方库,它的编码依赖于:

QTextCodec::setCodecForTr( ..);

QTextCodec::setCodecForCStrings(...);

那么这个库在编码设计上存在问题。如果你确认如此,我想你应该去报告 bug

快速回复
限100 字节
 
上一个 下一个