需要_wcstombs_l的工作示例代码

时间:2013-11-01 16:50:11

标签: c++ visual-studio visual-c++

如何使用_wcstombs_l函数将UNICODE字符串转换为UTF-8?我想我需要传入一个UTF-8 _locale_t,但我不知道如何创建这种类型的变量。

1 个答案:

答案 0 :(得分:1)

你不能 - UTF-8实际上不是ANSI代码页,没有使用它的语言环境。请改用WideCharToMultiByte(CP_UTF8, ...)

您应该使用_locale_t函数为_wcstombs_l创建_create_locale参数。 Its documentation州,我引用:

  

locale 参数可以采用区域设置名称,语言字符串,语言字符串和国家/地区代码,代码页或语言字符串,国家/地区代码和代码页。可用区域设置名称,语言,国家/地区代码和代码页的集合包括Windows NLS API支持的所有内容,但每个字符需要两个以上字节的代码页除外 - 例如,UTF-7和 UTF-8 即可。如果您提供的代码页如UTF-7或 UTF-8 _create_locale失败并返回NULL

强调我的。