找回密码
 立即注册
收起左侧

中文字符如何进行比较?

9
回复
9553
查看
[复制链接]
累计签到:87 天
连续签到:1 天
来源: 2014-5-6 10:04:17 显示全部楼层 |阅读模式
5Qter豆
if(ui->NamecomboBox->currentText()==tr("上天线/全向天线"))
A
else
B
这个语句判断不出来这两者字符的差别啊 每次输出的都是B

求教!



最佳答案

查看完整内容

仔细看了一下文档,tr()的返回值是QString类型,确实是可以这亲比较。但是我觉得这里最好不用tr()这个函数。
回复

使用道具 举报

累计签到:181 天
连续签到:1 天
2014-5-6 10:04:18 显示全部楼层
a408815041 发表于 2014-5-6 15:36
我用这种字符串 直接比较都可以啊~~~

仔细看了一下文档,tr()的返回值是QString类型,确实是可以这亲比较。但是我觉得这里最好不用tr()这个函数。
回复

使用道具 举报

累计签到:894 天
连续签到:1 天
2014-5-6 10:09:27 显示全部楼层
既然是comboBox,那么你可以用CurrentIndex()做比较啊,这个效率比较高。
如果非要比较汉字的话,可以考虑以下方法,转换为16进制。
QString ans = "南";
qDebug() << "HEX of original UTF8:" << ans.toLocal8Bit().toHex();
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2014-5-6 12:56:29 显示全部楼层
首先 你要确保
ui->NamecomboBox->currentText()取出来的是汉字
有可能是你代码没做处理
已经变成乱码了

点评

debug出来是汉字…… 只比较“/”也可以,但是有汉字就不行  详情 回复 发表于 2014-5-6 13:25
回复

使用道具 举报

累计签到:87 天
连续签到:1 天
2014-5-6 13:25:20 显示全部楼层
a408815041 发表于 2014-5-6 12:56
首先 你要确保
ui->NamecomboBox->currentText()取出来的是汉字
有可能是你代码没做处理

debug出来是汉字……

只比较“/”也可以,但是有汉字就不行
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2014-5-6 15:15:39 显示全部楼层
20030969 发表于 2014-5-6 13:25
debug出来是汉字……

只比较“/”也可以,但是有汉字就不行

你说你这里直接打印出来是汉字,
我估计
你打印tr("上天线/全向天线")就不一定对了
可能是 "上天线/全向天线" 而不是 tr("上天线/全向天线")。。。

点评

tr不是强制翻译吗…… 不用tr()貌似也不行……  详情 回复 发表于 2014-5-6 15:21
回复

使用道具 举报

累计签到:87 天
连续签到:1 天
2014-5-6 15:21:22 显示全部楼层
a408815041 发表于 2014-5-6 15:15
你说你这里直接打印出来是汉字,
我估计
你打印tr("上天线/全向天线")就不一定对了

tr不是强制翻译吗……

不用tr()貌似也不行……
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2014-5-6 15:29:07 显示全部楼层
20030969 发表于 2014-5-6 15:21
tr不是强制翻译吗……

不用tr()貌似也不行……

你现在ui->NamecomboBox->currentText()直接打印是汉字?
怎么打印"上天线/全向天线"出汉字估计就可以了
建议QString::fromLocal8bit("上天线/全向天线");QT4.8
还有就是空格 建议用trinmmed函数去掉左右空格
回复

使用道具 举报

累计签到:181 天
连续签到:1 天
2014-5-6 15:30:47 显示全部楼层
这样当然不行,这样比较法是在比较两个地址,当然不可能一样,需要用到compare这样的函数来进行比较才行。
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2014-5-6 15:36:07 显示全部楼层
hzzhou 发表于 2014-5-6 15:30
这样当然不行,这样比较法是在比较两个地址,当然不可能一样,需要用到compare这样的函数来进行比较才行。 ...

我用这种字符串 直接比较都可以啊~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了