У меня есть Qstring
, который содержит несколько символов, и 'Å'
.
Используя MatchString.contains('Å')
, он возвращает false.
Есть какая-то ошибка в моем понимании этой функции?
У меня есть Qstring
, который содержит несколько символов, и 'Å'
.
Используя MatchString.contains('Å')
, он возвращает false.
Есть какая-то ошибка в моем понимании этой функции?
MatchString.contains(QChar(0xc5))
? 21.08.2014 Возможно, вы получите разные результаты, если ваш исходный файл не сохранен с использованием кодировки UTF-8 или если ваша платформа не поддерживает беззнаковые типы char
, поэтому явно создайте объект QChar
, используя его значение Unicode:
if (MatchString.contains(QChar(0xc5))) {
...
}
Когда вы пишете 'Å'
, компилятор обрабатывает его как символ ASCII, а Å
— это символ Unicode. Так что используйте L'Å'
вместо этого. Дополнительные сведения см. здесь:
http://msdn.microsoft.com/en-us/library/dybsewaf.aspx
Также вы можете использовать макрос _T
, который переводит литеральную строку в форму с префиксом L, если определено _UNICODE
.