首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >任何Microsoft库是否使用Windows SBCS代码页中的非拉丁数字来表示C字符串中的数字数据?

任何Microsoft库是否使用Windows SBCS代码页中的非拉丁数字来表示C字符串中的数字数据?
EN

Stack Overflow用户
提问于 2012-01-20 11:02:02
回答 2查看 195关注 0票数 2

我正在尝试为“文本”文件编写一个解析器,我知道这些文件将被编码在一个Windows单字节代码页中。这些文件包含基本数据类型的文本表示,至少可以说,我对这些表示缺乏规范。

Windows-874中,我注意到接近尾端的十个不显眼的小角色,叫做THAI DIGIT ZERO to THAI DIGIT NINE

我正在尝试编写这个解析器,使其非常健壮,但我在黑暗中工作,因为有许多不同的程序可以生成这些数据文件,而且我无法访问这些源。

我想知道的是: Microsoft std::string库中的任何函数都可以将实数数据类型转换为包含非char const * 阿拉伯数字 C++ (即序列化)。

我不使用微软的C++库,所以不能引用任何特定的库,但是一个虚构的例子可能是char const * IntegerFunctions::ToString(int i)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-20 14:38:04

这些数字当然可以由Microsoft库创建。属性LOCALE_IDIGITSUBSTITUTIONLOCALE_SNATIVEDIGITS确定由OS格式化的数字是否将使用本机(即非ASCII)数字。这些最初是Unicode,因为这是Windows内部创建字符串的方式。当您有一个泰国语言环境,并将Unicode转换为CP874时,这些字符将被保留。

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

票数 1
EN

Stack Overflow用户

发布于 2012-01-20 11:40:09

有点相反的答案,但此页似乎表明微软的运行时库在执行您想要做的事情时能够理解相当多(但不是全部)非拉丁数字,即将一个字符串解析为一个数字。

泰语也包括在内,这似乎表明在自定义代码中支持泰语也是个好主意。

为了在这里包含更多信息,链接到页面声明微软的msvcr100运行时支持从以下字符集解码数字:

  • ASCII
  • 阿拉伯语-印度语
  • 扩展阿拉伯语
  • 德瓦纳加里
  • 孟加拉语
  • 古尔穆基
  • 古吉拉特
  • 奥里亚
  • 特卢古
  • 坎纳达
  • 马来兰
  • 泰语
  • 老子
  • 藏人
  • 缅甸
  • 高棉语
  • 蒙语
  • 全宽

整个页面包括更多的编程环境和更多的语言(也有大量的负面因素)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8940394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档