不能在Qt中读取utf-8文件
Not able to reading utf-8 file in Qt
我正在读取一个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"
文件只包含一个字符Lambda的unicode值是3bb,其utf等价值是cebb那么为什么我得到的输出是f09d9c86
当我在代码中硬编码字符串时,我得到正确的结果。
QString str = QString::fromWCharArray(L" ");
qDebug() << str << str.toUtf8().toHex();
我做错了什么吗?请帮助。
(U+1D706 MATHEMATICAL ITALIC SMALL lambda)的UTF-8表示为f0 9d 9c 86
。
相关文章:
- 如何将 UTF-8 文本从文件转换为某个可以迭代的容器,并检查每个符号是否为C++字母数字?
- 读取UTF-8文件需要解析字符
- 如何使文件流以 UTF-8 C++读取
- C++读取和写入 UTF-32 文件
- 从C++文件中读取和打印 UTF-8 符号
- 如何在C++中读取 UTF-8 文件数据
- Qt UTF-8 文件到 std::string 添加额外的字符
- 如何在C 17中读取UTF-16文本文件
- 如何将CSV文件保存为UTF-8
- 如何从文件中写入的UTF-8编码的URDU字符串中获取单个字符
- 无法在C++到txt文件中正确打印某些utf-8字符
- 跨平台UTF-8字符文件数据编码/解码
- 从包含 utf-8(印地语)格式文本的文件读取并写入其他文件
- 如何在 c++ STL 文件读取期间可移植地捕获和处理 UTF "EN DASH"缺点?
- 将 UTF-8 文件转换为 UTF-16
- C++ 读取 UTF-8 文件正常,转换为 UTF-16 正常,写回文件不正常
- 如何在C++中使用fprintf编写UTF-8文件
- 不能在Qt中读取utf-8文件
- 用c++创建和写入UTF-8文件
- C++中的UTF文件和字符串