#include <string> #include <codecvt> #include <locale> #include <iostream> std::u16string to_utf16( std::string str ) // utf-8 to utf16 { return std::wstring_convert< std::codecvt_utf8_utf16<char16_t>, char16_t >{}.from_bytes(str); } std::string to_utf8( std::u16string str16 ) { return std::wstring_convert< std::codecvt_utf8_utf16<char16_t>, char16_t >{}.to_bytes(str16); } std::u32string to_utf32( std::string str ) { return std::wstring_convert< std::codecvt_utf8<char32_t>, char32_t >{}.from_bytes(str); } std::string to_utf8( std::u32string str32 ) { return std::wstring_convert< std::codecvt_utf8<char32_t>, char32_t >{}.to_bytes(str32); } std::wstring to_wchar_t( std::string str ) { return std::wstring_convert< std::codecvt_utf8<wchar_t>, wchar_t >{}.from_bytes(str); } std::string to_utf8( std::wstring wstr ) { return std::wstring_convert< std::codecvt_utf8<wchar_t>, wchar_t >{}.to_bytes(wstr); } int main() { const std::string utf8 = "hello world!\n" ; const std::u16string utf16 = to_utf16( utf8 ) ; std::cout << to_utf8(utf16) ; const std::u32string utf32 = to_utf32( utf8 ) ; std::cout << to_utf8(utf32) ; const std::wstring wstr = to_wchar_t(utf8) ; std::wcout << wstr ; std::cout << to_utf8(wstr) << "---------------------\n" ; }
string,wstring,u16string,u32string相互转换
精选 转载下一篇:IPV4与IPV6表示方法
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
STL-常用容器-string
string 类内部封装了很多成员方法例如:查找find,拷贝copy,删除delete 替换replace,插入insertstring管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责(RAII)
C++STL STL常用容器 string类 string类的常用接口 -
【剑指offer知识点】List转int[],List转String,String转int,char[]转String,String 转char[],List转String[]
5] String 转char[][4] char[]转String。[6] List转String[][2] List转String
List怎么转int[] String转int String 转char[]