[Qt-interest] messy code chinese

Chen, Zhenqiang zhenqiang.chen at intel.com
Fri Apr 15 05:01:47 CEST 2011


I had similar issues before. I solved it with

(1) For const Chinese string, use QObject::trUtf8("提示").
(2) Make sure QTextCodec::setCodec... is executed before the reference of Chinese string. i.e. your code should be in the following execution order.


#if defined(Q_OS_LINUX)

    QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());

    QTextCodec::setCodecForCStrings(QTextCodec::codecForCStrings());

    QTextCodec::setCodecForTr(QTextCodec::codecForTr());

#endif

...



// set header list
    QStringList headerList;
    headerList << "flow" << "提示" << "index"

________________________________
From: qt-interest-bounces+zhenqiang.chen=intel.com at qt.nokia.com [mailto:qt-interest-bounces+zhenqiang.chen=intel.com at qt.nokia.com] On Behalf Of pengliang(彭亮)
Sent: 2011年4月15日 9:11
To: qt-interest at qt.nokia.com
Subject: [Qt-interest] messy code chinese

Hi All
         I had tried GBK,System,GB2312,UTF8 of QTextCodec, but Chinese still unreadable on other computers, it is perfect on my computer.
         Anybody can tell me why?


    // set header list
    QStringList headerList;
    headerList << "flow" << "提示" << "index" <

[cid:788495402 at 15042011-2EC1]



// set code

#if defined(Q_OS_LINUX)

    QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());

    QTextCodec::setCodecForCStrings(QTextCodec::codecForCStrings());

    QTextCodec::setCodecForTr(QTextCodec::codecForTr());

#endif

#if defined(Q_OS_WIN)

/*

    QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));

QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));



    QTextCodec::setCodecForLocale(QTextCodec::codecForName("System"));

    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("System"));

QTextCodec::setCodecForTr(QTextCodec::codecForName("System"));



    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));

    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));



*/



    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF8"));

    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF8"));

    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF8"));

#endif




Thanks
彭亮Ken

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20110415/b22b6216/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.jpg
Type: image/jpeg
Size: 6888 bytes
Desc: image002.jpg
Url : http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20110415/b22b6216/attachment.jpg 


More information about the Qt-interest-old mailing list