c++ - QT写入二进制数据 '\n' 0x10->0x0d,0x010

标签 c++ qt

我从事涉及写入二进制数据的项目,我使用 QString 存储行,然后通过 Qfile 将其保存在硬盘上

 data.append(QChar(10));

并且我设置编码为“ISO-8859-1”,反正当数据等于10我如上所示,保存的数据是0x0d,0x0a我找到问题源,10 ='\n'和Qt改变它到 '\n\r' 所以它发生了。

我该如何解决?

最佳答案

您的问题答案很差,原因有几个。以下是我立即发现的问题:

  1. 如果您真的正在编写二进制数据,不要使用字符串。为什么,请阅读并理解以下页面:
    The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
    QString class documentation
    QChar class documentation
  2. 获取“\r\n”的问题源于问题 #1,但您不会在基于 Linux 的操作系统上发现此问题。
  3. 您没有在问题中包含data 对象的类型,这意味着我们真的不知道data.append(.. .) 正在做。确保您的帖子包含 short, self contained, correct (compilable), example .此外,在您发布的答案中,没有提及此 data 对象。
  4. 什么是字节?它不是 C++ 或 Qt 的一部分,这是您给我们的仅有的两个标签。
  5. 在您的回答中,您转而使用 C++ 流。小心这样做,因为您会绕过使用 Qt 流所包含的许多“安全”功能。如果您已经在使用 Qt,请尽可能多地使用它,因为它旨在协同工作。

关于c++ - QT写入二进制数据 '\n' 0x10->0x0d,0x010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7826396/

相关文章:

qt - 如何在QT中设计一个文本编辑器?

c++ - C++如何改变32位数字中4位的值

c++ - VS代码包含路径

c++ - 在 "template"和函数声明之间使用:template<typename trait> using tr = base_trait<trait> void fn(tr::type arg) { ... }

qt - iOS 和 Android 中的照片库

c++ - Qt 和 openGL 的 gluPerspective 等价物

c++ - 为什么要向 C++ 添加引用? (从历史的角度)

c++ - 抽象类的 std::shared_ptr 实例化派生类

c++ - 用新的小部件替换 QTabWidget 的页面

c++ - 哪个 Qt Widget 可以滚动浏览小部件?