Unicode编码(133)

心血来潮,想了个问题,并测试了下。

预备知识

Unicode是字符集合ascii相对,,编码指的是utf8 utf16 utf32 gb3121(历史等相关都了解了,就不说了)。操作系统中windows是utf16,Linux mac是utf8

说明

第一,,我认为wchar_t只是指字符集,指的是这种字符串是用Unicode的字符集。在编译的时候再按照编码翻译。

第二,,问题描述,先说个沾边的情况Linux和Windows的换行符问题,这个也引出到了git里面的知识,李纳斯的自动换行符转换是个坑。
由于编码的不同导致传输中文字符的出错,一般网络传输用unsigned char或者char(wchar大了) ,数据传输过去如果两个的源文件不是同一种编码格式,必定出现乱码(中文情况)

mbrtowc//msvc貌似只有这个函数支持
std::codecvt<char, char, std::mbstate_t>
std::codecvt<char16_t, char, std::mbstate_t>
std::codecvt<char32_t, char, std::mbstate_t>
std::codecvt<wchar_t, char, std::mbstate_t>
codecvt_utf8   codecvt_utf16  codecvt_utf8_utf16  wstring_convert配合转换    
// //