0

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

4

1 回答 1

2

你不能 - UTF-8 并不是真正的 ANSI 代码页,没有使用它的语言环境。改为使用WideCharToMultiByte(CP_UTF8, ...)

您应该为with函数创建一个_locale_t参数。它的文档指出,我引用:_wcstombs_l_create_locale

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

强调我的。

于 2013-11-01T19:05:15.207 回答