• 3443阅读
  • 10回复

xp下和ubuntu下这2者有区别吗?ubuntu下要怎么判断呢? [复制链接]

上一主题 下一主题
离线wangyan23888
 

只看楼主 倒序阅读 楼主  发表于: 2013-08-05
— 本帖被 dbzhang800 从 Qt基础编程 移动到本区(2013-08-05) —
一样的代码:

void MainWindow::huamian_slecet(QString text)
{
    qDebug()<<"text==="<<text;
    if(text == "单画面")
    {
        qDebug()<<"xianshi one";
    }
}
xp下输出:[size=; font-size: 8pt,8pt]text=== "单画面"
[size=; font-size:8pt,8pt][font='Courier']xianshi one
[size=; font-size:8pt,8pt][font='Courier']这是我想要的结果
[size=; font-size:8pt,8pt][font='Courier']

[size=; font-size:8pt,8pt][font='Courier']但是在ubuntu下输出:
text=== "单画面"
[size=; font-size:8pt,8pt][font='Courier']没有进入if判断,这是为什么呢?
[size=; font-size:8pt,8pt][font='Courier']谢谢
离线qixin1227

只看该作者 1楼 发表于: 2013-08-05
字库的原因?
写真正的代码
离线wangyan23888

只看该作者 2楼 发表于: 2013-08-05
回 1楼(qixin1227) 的帖子
不清楚啊
离线dbzhang800

只看该作者 3楼 发表于: 2013-08-05
因为你并不能保证 你的 QString 变量 text 内容 和 C窄字符串 "单画面" 一样,

尽管你的qDebug将text输出为 "单画面"
离线wangyan23888

只看该作者 4楼 发表于: 2013-08-05
回 3楼(dbzhang800) 的帖子
那要怎么处理呢?谢谢
我测试了下
qDebug()<<strlen("单画面");
xp下输出9;
ubuntu下输出6
离线dbzhang800

只看该作者 5楼 发表于: 2013-08-05
Re:回 3楼(dbzhang800) 的帖子
引用第4楼wangyan23888于2013-08-05 15:45发表的 回 3楼(dbzhang800) 的帖子 :
那要怎么处理呢?谢谢
我测试了下
qDebug()<<strlen("单画面");
xp下输出9;
ubuntu下输出6

这个你确定你没说反么?
离线wangyan23888

只看该作者 6楼 发表于: 2013-08-05
回 5楼(dbzhang800) 的帖子
是这样子的,我刚刚又去测试了下
离线dbzhang800

只看该作者 7楼 发表于: 2013-08-05
输出9,说明 C++ 的 exec-charset 是 UTF8
输出6,说明 C++ 的 exec-charset 是 GB18030

统一你的字符集即可,如果可能,统一到UTF8而不是GB18030
离线wangyan23888

只看该作者 8楼 发表于: 2013-08-05
回 5楼(dbzhang800) 的帖子
我那个函数中的text是从comboBox中获取到的信息
离线wangyan23888

只看该作者 9楼 发表于: 2013-08-05
回 7楼(dbzhang800) 的帖子
非常感谢
离线realfan

只看该作者 10楼 发表于: 2013-08-06
写代码用UTF8是个好习惯
快速回复
限100 字节
 
上一个 下一个