在跨平台环境中是不是有必要的安全方式在 QSettings 中存储数据?
Posted
技术标签:
【中文标题】在跨平台环境中是不是有必要的安全方式在 QSettings 中存储数据?【英文标题】:Is there a required safe way of storing data in QSettings in a cross platform environment?在跨平台环境中是否有必要的安全方式在 QSettings 中存储数据? 【发布时间】:2011-04-08 09:55:00 【问题描述】:我的应用程序的 mac 版本刚刚开始破坏我使用 QSettings 保存和恢复的全屏和正常布局。甚至我的应用程序的旧版本现在也正在为我的客户使用。
当我发现一个包含有趣行的错误报告时,我只是在谷歌上搜索类似的东西:
QSettings s;
restoreState(s.value(QString::fromLocal8Bit("state")).toByteArray());
当保存到计算机的 plist 或 windows 注册表时,我必须在 fromLocal8bit() 中格式化数据吗?
http://bugreports.qt-project.org/browse/QTBUG-8631http://bugreports.qt-project.org/secure/attachment/13400/main.cpp
【问题讨论】:
【参考方案1】:它是被编码的数据,它只是字面的“状态”。如果您使用 QByteArray 或 QString,这些值会被正确编码和解码 . QString::fromLocal8Bit() 部分用于将源文件中的字符串文字转换为 unicode 字符串。在源文件中坚持使用 ASCII 是一种很好的做法,因为 UTF-8 等其他编码通常不适用于所有编译器,尤其是 MSVC。
要将文字转换为 QString,我建议使用 QLatin1String:
QLatin1String("state")
fromLocal8Bit() 严格来说是错误的,因为本地 8 位编码与文字来源的源文件编码无关。 但由于“状态”不包含任何非 ascii 字符,所以无论如何都应该无关紧要。
【讨论】:
以上是关于在跨平台环境中是不是有必要的安全方式在 QSettings 中存储数据?的主要内容,如果未能解决你的问题,请参考以下文章
Office 365 安全和合规性管理平台为企业数据安全管理保驾护航
Xam 表单中的 ModernHttpClient。在最新版本中是不是有必要?