C ++中的Unicode处理

时间:2020-03-05 18:51:11  来源:igfitidea点击:

C ++中Unicode处理的最佳实践是什么?

解决方案

回答

这是Windows编程的清单:

  • _T(" my string")中包含的所有字符串
  • strlen()等函数已被_tcslen()等替换。
  • 使用LPTSTR和LPCTSTR代替char *和const char *
  • 在Dev Studio中启动新项目时,请务必确保在项目属性中选择了Unicode选项。
  • 对于C ++字符串,请使用std :: wstring代替std :: string

回答

  • 使用ICU处理数据(或者类似的库)
  • 在我们自己的数据存储中,确保所有内容都以相同的编码存储
  • 确保我们始终将unicode库用于诸如字符串长度,大写状态等平凡的任务。切勿使用is_alpha之类的标准库内置函数,除非我们要使用它的定义。
  • 我不能说足够多:如果我们关心正确性,请不要重复访问string的索引,请始终使用unicode库。

回答

使用IBM的Unicode国际组件

回答

看着
C ++中不区分大小写的字符串比较

该问题具有指向Unicode的Microsoft文档的链接:http://msdn.microsoft.com/zh-cn/library/cc194799.aspx

如果我们查看该文章旁边MSDN的左侧导航栏,则应该找到许多与Unicode函数有关的信息。它是"编码字符"一章的一部分(http://msdn.microsoft.com/zh-cn/library/cc194786.aspx)

它包含以下小节:

  • 代码页模型
  • Windows中的双字节字符集
  • 统一码
  • 混合环境中的兼容性问题
  • Unicode数据转换
  • 将基于Windows的程序迁移到Unicode
  • 概括

回答

我们公司(和其他公司)使用Taligent最初开发的开放源代码的Unicode国际组件(ICU)库。

它处理字符串,语言环境,转换,日期/时间,排序规则,转换等。 al。

从ICU用户指南开始