Невозможно прочитать файл utf-8 в Qt - PullRequest
1 голос
/ 23 декабря 2011

Я читаю файл с кодировкой utf-8.Ниже мой код.

QFile file("file.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
  return 1;
}
QTextStream ts(&file);
ts.setCodec( "UTF-8" );
QString str = ts.readLine();    
qDebug() << str << str.toUtf8().toHex();

вывод: "??"Файл "f09d9c86"

содержит только один символ: ? Значение unicode для lambda ieLambda равно 3bb, а его utf-эквивалент равен cebb, тогда почему я получаю вывод в виде f09d9c86

, когда я жестко кодирую строку в кодея получаю правильный результат.

QString str = QString::fromWCharArray(L"?");
qDebug() << str << str.toUtf8().toHex();

я что-то не так делаю?пожалуйста, помогите.

1 Ответ

4 голосов
/ 23 декабря 2011

UTF-8 представляет ? (U + 1D706 МАТЕМАТИЧЕСКАЯ ИТАЛЬИЧЕСКАЯ МАЛЕНЬКАЯ ЛАМДА): f0 9d 9c 86.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...