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用户指南开始