c++ - 任何 Microsoft 库都使用 Windows SBCS 代码页中的非拉丁数字来表示 C 字符串中的数字数据吗?

标签 c++ character-encoding codepages data-conversion

我正在尝试为“文本”文件编写一个解析器,我知道这些文件将在 Windows single byte code pages 之一中进行编码。 .这些文件包含基本数据类型的文本表示,至少可以说,我缺乏这些表示的规范。

我注意到 Windows-874靠近末尾的十个不显眼的小字符称为 THAI DIGIT ZEROTHAI DIGIT NINE

我试图将此解析器编写得非常健壮,但我有点摸不着头脑,因为有许多不同的程序可以生成这些数据文件,而我无权访问源代码。

我想知道的是:Microsoft C++ 库中的任何函数都将实数数据类型转换为 std::stringchar const * (即序列化),其中将包含非 arabic-numerals ?

我不使用 Microsoft C++ 库,因此不能特别引用任何库,但一个虚构的示例可以是 char const * IntegerFunctions::ToString(int i)

最佳答案

这些数字当然可以由 Microsoft 图书馆创建。属性 LOCALE_IDIGITSUBSTITUTIONLOCALE_SNATIVEDIGITS 确定由操作系统格式化的数字是否将使用 native (即非 ASCII)数字。这些最初是 Unicode,因为这就是 Windows 内部创建字符串的方式。当您使用泰语语言环境并将 Unicode 转换为 CP874 时,这些字符将被保留。

演示此行为的一个简单函数是 GetNumberFormatA

关于c++ - 任何 Microsoft 库都使用 Windows SBCS 代码页中的非拉丁数字来表示 C 字符串中的数字数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8940394/

相关文章:

C++根据重量计算运费

php - 导出为 CSV 俄语字符时不会显示

HTML/CSS 使用 DOS 代码页 437 字体/缺少字形

Java 1.6 Windows-1252 编码在 3 个字符上失败

c++ - 从子构造函数(模板)访问父成员

c++ - Visual C++ 错误 LNK2019

c++ - 标准中变体成员的定义

php - htmlentities 和 é (e acute)

firefox - 在版权符号之前插入特殊字符 'Â'

java - 在 Java 中创建带有国家字符的 tar 存档