• 5513阅读
  • 2回复

[讨论]关于QString::Compare的使用 [复制链接]

上一主题 下一主题
离线wang2222ning
 

只看楼主 倒序阅读 楼主  发表于: 2014-04-23
    今天在使用QString::Compare比较两个地址是否相同。可是结果却出现一个奇怪的返回值。闲话不多说,代码先贴上:

代码:
QString CurrentSelect = plistwidget->CurrentItem();
qDebug()<<"CurrentSelect:"<<CurrentSelect;
if( CurrentSelect.isEmpty() || CurrentSelect.isNull() )
    return;
QString CurrentPlay = mediaplayer->currentMedia().canonicalUrl().path();
qDebug()<<"CurrentPlay:"<<CurrentPlay;
qDebug()<<"compare:"<<QString::compare(CurrentPlay,CurrentSelect);
结果:
CurrentSelect: "F:/KuGou/Beyond - 光辉岁月.mp3"
CurrentPlay: "/F:/KuGou/Beyond - 光辉岁月.mp3"
compare: -23
//两个字符相等
CurrentSelect: "F:/KuGou/Kanye West - Diamonds From Sierra Leone.mp3"
CurrentPlay: "/F:/KuGou/Beyond - Amani.mp3"
compare: -23
//两个字符不相等

之后我以为是我中文字符不被支持,然后又做了个实验:
代码:
QString test1("test1");
    QString test2("test2");
    QString test;

    test=test2;
    qDebug()<<"compare1::"<<QString::compare(test1,test);
    qDebug()<<"compare2::"<<QString::compare(test2,test);

    test1="你好";
    test2="你好呀";
    qDebug()<<"test1:"<<test1;
    qDebug()<<"test2:"<<test2;
    test=test2;
    qDebug()<<"compare3::"<<QString::compare(test1,test);
    qDebug()<<"compare4::"<<QString::compare(test2,test);
结果:
compare1:: -1
compare2:: 0
test1: "你好"
test2: "你好呀"
compare3:: -1
compare4:: 0
这我就不明白了,不是因为字符编码的问题?那是什么问题?所以想请教各位道友,有没有出现过这样的问题??
离线shiziyang

只看该作者 1楼 发表于: 2014-04-23
不是因为第二个首字母多了个“/”
离线wang2222ning

只看该作者 2楼 发表于: 2014-04-23
额,多谢提醒,刚刚才发现。谢谢了
快速回复
限100 字节
 
上一个 下一个