C :将字符串转换为 wstring,同时保留编码
给定一个包含日语字符的字符串 s,并希望分配其内容到一个 wstring,ws。任务是在不引入任何编码问题的情况下执行此任务。
解决方案:
利用 C 11 及更高版本,可以仅使用标准库完成此任务。
第 1 步:包含必要的内容标头
#include <locale> #include <codecvt> #include <string>
第 2 步:创建转换器
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
此转换器将处理 UTF-8(s 的编码)之间的转换和UTF-16(ws的编码)。
第3步:转换将字符串转换为 wstring
std::wstring ws = converter.from_bytes(s);
示例:
std::string s = "おはよう"; std::wstring ws; std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter; ws = converter.from_bytes(s);
注意:
以上是如何在 C 中安全地将 UTF-8 字符串转换为 wstring?的详细内容。更多信息请关注PHP中文网其他相关文章!