【发布时间】:2010-07-23 17:44:48
【问题描述】:
问题:
我有一个基于 QT 的多平台(win、mac、*nix)应用程序,它可以解析包含十进制数字的 ascii 文件。
使用各种不同的代码片段完成解析,这些代码片段使用 qt string stuff、c++ stdin、oldstyle scanf 等。
ascii 文件总是有 '.' (点)作为分隔的小数(例如,在要解析的文件中,1/10 写成 0.1 作为许多国家的标准)。
在使用逗号分隔十进制的本地化操作系统中使用应用程序的人会遇到很多问题(例如,对于法国用户 scanf 期望找到 0,1 作为 1/10 的有效文本表示,如果他们找到 0.1 scanf 会将其解析为 0)
如何确保始终忽略指示必须如何写入小数点的操作系统区域设置指示?
假设添加是否安全
QLocale::setDefault(QLocale(QLocale::English,QLocale::UnitedStates));
足以摆脱所有这些问题吗? 对全局设置语言环境的便携方式有什么建议吗?
【问题讨论】:
标签: c++ qt localization locale