如何使用 _wcstombs_l 函数将 UNICODE 字符串转换为 UTF-8?我想我需要传入一个 UTF-8 _locale_t,但我不知道如何创建这种类型的变量。
问问题
1175 次
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 回答