Qt处理中文字符的问题

chengshiding 2013-05-30 01:27:36
读进去后,开始的字符串中文要不截断,要不就是显示成问号。

比如: "ABC你好"
读进去要不是"ABC",(遇到为0的字节,就结束输入了),要不是"ABC???"(已经把中文用一种编码方式编码了)。

而我想要处理原始的字节流,不管该字节是否为0。都应该全部读入,并且处理过程不因字节为0而结束。

请教各位了。3Q
...全文
286 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengshiding 2013-05-30
  • 打赏
  • 举报
回复
引用 8 楼 dbzhang800 的回复:
[quote=引用 7 楼 chengshiding 的回复:] 我感觉QFile对我的文件使用了特定编码进行了解释。我只想得到那个字节本来的值,如果qDebug有问题,那么有什么办法能打印出这个字节的值吗
QFile 不会多此一举去干别的事情的。 所有的数据都在QByteArray里面,你想怎么操作,就怎么操作。哪怕直接 qDebug() << Buffer.toHex(); [/quote] 果然如此啊,哈哈。 不过我如果想要输出Buffer[i]的16进制值怎么输出呢,qDebug可以吗
dbzhang800 2013-05-30
  • 打赏
  • 举报
回复
引用 7 楼 chengshiding 的回复:
我感觉QFile对我的文件使用了特定编码进行了解释。我只想得到那个字节本来的值,如果qDebug有问题,那么有什么办法能打印出这个字节的值吗
QFile 不会多此一举去干别的事情的。 所有的数据都在QByteArray里面,你想怎么操作,就怎么操作。哪怕直接 qDebug() << Buffer.toHex();
chengshiding 2013-05-30
  • 打赏
  • 举报
回复
我感觉QFile对我的文件使用了特定编码进行了解释。我只想得到那个字节本来的值,如果qDebug有问题,那么有什么办法能打印出这个字节的值吗
dbzhang800 2013-05-30
  • 打赏
  • 举报
回复
引用 4 楼 chengshiding 的回复:
QFile file("1.txt"); QByteArray Buffer = file.readAll(); qDebug() << Buffer; 1.txt里面的内容为"ABC你好" 输出:"ABC????" 查看文件的16进制值,里面是 41 42 43 C4 E3 BA C3 可以得知:C4 E3 为“你”的二进制值, BA C3为“好”的二进制值。
恩,一切正常,QFile正常,QByteArray也正常。但是你的 qDebug这么用就不对了
chengshiding 2013-05-30
  • 打赏
  • 举报
回复
引用 3 楼 dbzhang800 的回复:
[quote=引用 2 楼 chengshiding 的回复:] QFile从文件读进去后就截断了中文部分
不可能
引用 2 楼 chengshiding 的回复:
我如果使用CFile,但是包含头文件找不到
如果你的MFC配置正确的话,应该没问题[/quote] 就是想得到确切字节的值。而不是问号
chengshiding 2013-05-30
  • 打赏
  • 举报
回复
QFile file("1.txt"); QByteArray Buffer = file.readAll(); qDebug() << Buffer; 1.txt里面的内容为"ABC你好" 输出:"ABC????" 查看文件的16进制值,里面是 41 42 43 C4 E3 BA C3 可以得知:C4 E3 为“你”的二进制值, BA C3为“好”的二进制值。
dbzhang800 2013-05-30
  • 打赏
  • 举报
回复
引用 2 楼 chengshiding 的回复:
QFile从文件读进去后就截断了中文部分
不可能
引用 2 楼 chengshiding 的回复:
我如果使用CFile,但是包含头文件找不到
如果你的MFC配置正确的话,应该没问题
chengshiding 2013-05-30
  • 打赏
  • 举报
回复
引用 1 楼 dbzhang800 的回复:
这岂不是更简单,直接 char[]/std::string/QByteArray 都能满足你的要求
QFile从文件读进去后就截断了中文部分,我如果使用CFile,但是包含头文件找不到
dbzhang800 2013-05-30
  • 打赏
  • 举报
回复
这岂不是更简单,直接 char[]/std::string/QByteArray 都能满足你的要求

16,818

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧