我正在尝试为“文本”文件编写一个解析器,我知道这些文件将在 Windows single byte code pages 之一中进行编码。 .这些文件包含基本数据类型的文本表示,至少可以说,我缺乏这些表示的规范。
我注意到 Windows-874靠近末尾的十个不显眼的小字符称为 THAI DIGIT ZERO
到 THAI DIGIT NINE
。
我试图将此解析器编写得非常健壮,但我有点摸不着头脑,因为有许多不同的程序可以生成这些数据文件,而我无权访问源代码。
我想知道的是:Microsoft C++ 库中的任何函数都将实数数据类型转换为 std::string
或 char const *
(即序列化),其中将包含非 arabic-numerals ?
我不使用 Microsoft C++ 库,因此不能特别引用任何库,但一个虚构的示例可以是 char const * IntegerFunctions::ToString(int i)
。
最佳答案
这些数字当然可以由 Microsoft 图书馆创建。属性 LOCALE_IDIGITSUBSTITUTION
和 LOCALE_SNATIVEDIGITS
确定由操作系统格式化的数字是否将使用 native (即非 ASCII)数字。这些最初是 Unicode,因为这就是 Windows 内部创建字符串的方式。当您使用泰语语言环境并将 Unicode 转换为 CP874 时,这些字符将被保留。
演示此行为的一个简单函数是 GetNumberFormatA
关于c++ - 任何 Microsoft 库都使用 Windows SBCS 代码页中的非拉丁数字来表示 C 字符串中的数字数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8940394/