• 13298阅读
  • 4回复

[提问]qml中文显示 [复制链接]

上一主题 下一主题
离线bluesealycn
 
只看楼主 倒序阅读 楼主  发表于: 2010-10-29
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
在qml里中文文本显示乱码,不知怎么解决,哪位高手帮帮忙啊?不甚感激!
离线dbzhang800

只看该作者 1楼 发表于: 2010-10-29
1. 建议使用Qt提供的国际化功能
text: qsTr("This text should be translated and %1 is the arg").arg("foo")

2. 直接用unicode

" \u6211\u662f\u4e2d\u6587"

3. 可能会有(或以后会有)直接输入汉字和指定编码的方法
离线bluesealycn
只看该作者 2楼 发表于: 2010-10-29
回 1楼(dbzhang800) 的帖子
非常感谢!第一种方法还没试,第二种方法试了,直接在qml文件里加入unicode可以显示中文,但在c++里通过setContextProperty("mytext",myt)设置属性的方式还是显示乱码,不知道怎么回事?例如:myt = " \u6211\u662f\u4e2d\u6587",再用setContextProperty("mytext",myt)设置mytext属性,运行程序,还是显示乱码。请多指教!

离线dbzhang800

只看该作者 3楼 发表于: 2010-10-29
Re:回 1楼(dbzhang800) 的帖子
引用第2楼bluesealycn于2010-10-29 14:05发表的 回 1楼(dbzhang800) 的帖子 :
非常感谢!第一种方法还没试,第二种方法试了,直接在qml文件里加入unicode可以显示中文,但在c++里通过setContextProperty("mytext",myt)设置属性的方式还是显示乱码,不知道怎么回事?例如:myt = " \u6211\u662f\u4e2d\u6587",再用setContextProperty("mytext",myt)设置mytext属性,运行程序,还是显示乱码。请多指教!


c++ 中就需要遵循 c++ 的方式, 确保你的 myt 是一个正确的 QString
http://hi.baidu.com/cyclone/blog/item/9d7293130e5a498d6538dbf1.html
离线bluesealycn
只看该作者 4楼 发表于: 2010-10-30
回 3楼(dbzhang800) 的帖子
非常感谢!看了你的贴后,将QTextCodec::setCodecForTr(QTextCodec::codecForLocale());改为QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));再将字串设为myt = " \u6211\u662f\u4e2d\u6587",运行程序中文就显示出来了。谢谢!还想问问怎么能实现方法3?
快速回复
限100 字节
 
上一个 下一个