Jon*_*Jon 21
简而言之:该WideCharToMultiByte函数在参数列表中公开用于转换的编码/代码页,而wcstombs不是.这是一个主要的PITA,因为标准没有定义用于生成的编码wchar_t,而作为开发人员当然需要知道要转换为/来自哪种编码.
除此之外WideCharToMultiByte,当然是Windows API函数,并且在任何其他平台上都不可用.
因此,WideCharToMultiByte如果您的应用程序没有专门编写为可移植到非Windows操作系统,我建议您毫不犹豫地使用.否则,您可能想要与wcstombs(或最好是恕我直言)一起使用全功能便携式Unicode库(如ICU).
Chr*_*cke 13
WideCharToMultiByte是一个Windows API函数,可以在存储在CHAR中的Windows定义的多字节代码页和存储在WCHAR中的UTF16之间进行转换.要使用的代码页作为第一个参数传递,并且可以作为CP_ACP传递,这意味着特定于系统当前语言环境的代码页 - 在控制面板本地化工具"用于非Unicode程序的语言"中设置.它由#including访问,仅在Windows上可用.
wcstombs是一个标准C运行时函数,它在c运行时当前char*编码和wchar_t*编码之间进行转换.setlocale iirc可用于设置要使用的代码页.
std :: codecvt是C++标准库模板类,用于使用各种特征类型mechanisims在各种编码之间转换字符串,以定义源和目标编码.
还有其他库,包括ICONV或ICU,它们也可以进行各种unicode < - >多字节转换.
| 归档时间: |
|
| 查看次数: |
17038 次 |
| 最近记录: |