对于C++编码转换,通常使用的是C++11提供的codecvt头文件中的codecvt_utf8和codecvt_utf16模板类,这两个模板类可以帮助我们进行不同编码之间的转换。下面是一个完整的示例代码:
#include <iostream>
#include <locale>
#include <codecvt>
int main()
{
// 原始字符串,使用UTF-8编码
std::string utf8_str = u8"hello, 你好!";
// 构造一个codecvt_utf8_utf16<char16_t>对象,用于将UTF-8编码转换为UTF-16编码
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> converter;
// 将UTF-8编码的原始字符串转换为UTF-16编码
std::u16string utf16_str = converter.from_bytes(utf8_str);
// 将UTF-16编码的字符串输出到控制台
std::wcout << utf16_str << std::endl;
return 0;
}
该示例代码实现了将UTF-8编码的字符串转换为UTF-16编码的过程。
另外,我们也可以将UTF-16编码的字符串转换为UTF-8编码的字符串,示例如下:
#include <iostream>
#include <locale>
#include <codecvt>
int main()
{
// 原始字符串,使用UTF-16编码
std::u16string utf16_str = u"hello, 你好!";
// 构造一个codecvt_utf8_utf16<char16_t>对象,用于将UTF-16编码转换为UTF-8编码
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> converter;
// 将UTF-16编码的原始字符串转换为UTF-8编码
std::string utf8_str = converter.to_bytes(utf16_str);
// 将UTF-8编码的字符串输出到控制台
std::cout << utf8_str << std::endl;
return 0;
}
该示例代码实现了将UTF-16编码的字符串转换为UTF-8编码的过程。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++实现编码转换的示例代码 - Python技术站