utf8 转wstring
时间: 2024-09-12 12:16:00 浏览: 51
ANSI UNICODE UTF8转换
要将UTF-8编码的字符串转换为宽字符串(`std::wstring`),可以使用C++标准库中的函数。以下是一个简单的转换示例代码:
```cpp
#include <iostream>
#include <string>
#include <codecvt>
std::wstring utf8_to_wstring(const std::string& utf8str) {
std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
std::wstring wstr = conv.from_bytes(utf8str);
return wstr;
}
int main() {
std::string utf8string = u8"这是一段UTF-8编码的文本。";
std::wstring wstring = utf8_to_wstring(utf8string);
std::wcout << L"转换后的宽字符串: " << wstring << std::endl;
return 0;
}
```
在这段代码中,`std::wstring_convert` 和 `std::codecvt_utf8` 是处理UTF-8和宽字符之间转换的工具类。`from_bytes` 方法用于将UTF-8编码的字符串转换为宽字符串。
请确保你的编译器支持C++11标准或更高,因为 `<codecvt>` 头文件是在C++11中引入的。此外,一些平台可能需要链接相应的库(例如,在某些编译器上可能需要链接 `stdc++fs` 库)。
阅读全文