我从事涉及写入二进制数据的项目,我使用 QString 存储行,然后通过 Qfile 将其保存在硬盘上
data.append(QChar(10));
并且我设置编码为“ISO-8859-1”,反正当数据等于10我如上所示,保存的数据是0x0d,0x0a我找到问题源,10 ='\n'和Qt改变它到 '\n\r' 所以它发生了。
我该如何解决?
最佳答案
您的问题和答案很差,原因有几个。以下是我立即发现的问题:
- 如果您真的正在编写二进制数据,不要使用字符串。为什么,请阅读并理解以下页面:
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
QString class documentation
QChar class documentation - 获取“\r\n”的问题源于问题 #1,但您不会在基于 Linux 的操作系统上发现此问题。
- 您没有在问题中包含
data
对象的类型,这意味着我们真的不知道data.append(.. .)
正在做。确保您的帖子包含 short, self contained, correct (compilable), example .此外,在您发布的答案中,没有提及此data
对象。 - 什么是
字节
?它不是 C++ 或 Qt 的一部分,这是您给我们的仅有的两个标签。 - 在您的回答中,您转而使用 C++ 流。小心这样做,因为您会绕过使用 Qt 流所包含的许多“安全”功能。如果您已经在使用 Qt,请尽可能多地使用它,因为它旨在协同工作。
关于c++ - QT写入二进制数据 '\n' 0x10->0x0d,0x010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7826396/