C++ 将 ASCII 字符串转换为 Unicode 字符串 (std::wstring)
C++ 将 ASCII 字符串转换为 Unicode 字符串 (std::wstring)
以下代码展示了如何使用 std::wstring_convert 和 std::codecvt_utf8_utf16 将存储在 std::vector<unsigned char> 中的 ASCII 编码数据转换为 Unicode 字符串 (std::wstring):
#include <string>
#include <vector>
#include <locale>
std::wstring ASCIIToUnicode(const std::vector<unsigned char>& data) {
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
std::wstring unicode_data = converter.from_bytes(std::string(data.begin(), data.end()));
return unicode_data;
}
代码解释:
#include <locale>: 包含必要的头文件以使用std::wstring_convert和std::codecvt_utf8_utf16。ASCIIToUnicode(const std::vector<unsigned char>& data): 函数接受一个std::vector<unsigned char>类型的常量引用作为参数,表示要转换的 ASCII 数据。std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;: 创建一个std::wstring_convert对象,使用std::codecvt_utf8_utf16facet 进行 UTF-8 和 UTF-16 之间的转换。std::wstring unicode_data = converter.from_bytes(std::string(data.begin(), data.end()));: 将std::vector<unsigned char>转换为std::string,然后使用converter.from_bytes()方法将其转换为std::wstring。return unicode_data;: 返回转换后的 Unicode 字符串。
注意: 此代码示例假设输入数据是 ASCII 编码的。如果数据是其他编码格式,则需要相应地更改代码。
原文地址: https://www.cveoy.top/t/topic/f0mq 著作权归作者所有。请勿转载和采集!