关于QString::Compare的使用问题

时间:2023-01-04 22:50:36
今天在使用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 
这我就不明白了,不是因为字符编码的问题?那是什么问题?所以想请教各位道友,有没有出现过这样的问题??

4 个解决方案

#1


我发现问题并解决了,这就不麻烦大家了

#2


关于QString::Compare的使用问题

#3


关于QString::Compare的使用问题你不把是什麽原因和怎麼解決的說一下 关于QString::Compare的使用问题

#4


哦,忘记了,不好意思。
问题是出在

CurrentSelect: "F:/KuGou/Beyond - 光辉岁月.mp3" 
CurrentPlay: "/F:/KuGou/Beyond - 光辉岁月.mp3" 

开始多了一个斜杠符,因为Qurl::path()返回的比从QFileDilog中读取的路径多了一个斜杠符

#1


我发现问题并解决了,这就不麻烦大家了

#2


关于QString::Compare的使用问题

#3


关于QString::Compare的使用问题你不把是什麽原因和怎麼解決的說一下 关于QString::Compare的使用问题

#4


哦,忘记了,不好意思。
问题是出在

CurrentSelect: "F:/KuGou/Beyond - 光辉岁月.mp3" 
CurrentPlay: "/F:/KuGou/Beyond - 光辉岁月.mp3" 

开始多了一个斜杠符,因为Qurl::path()返回的比从QFileDilog中读取的路径多了一个斜杠符