Unicode使用UTF-16编码(双字节)。
当UTF-16不足以表示某个字符,UTF-16支持使用代理(32位4个字节)来表示一个字
符。
UTF-8将字符编码表示为1-4个字节,具体看字符的编码大小,对于0x0080以下的
字符压缩为1个字符,
当对>=0x0080的大量字符进行编码的效率不如UTF-16。
UTF-32就不用多讲了,效率不如前面的。
UTF系列相当于Unicode的再编码。
#include <iostream> #include <windows.h> using namespace std; int main() { TEXT() wchar_t str[]=L"测试Hello"; //设置输出方式为中文 std::wcout.imbue(std::locale("chs")); //wcout输出双字节编码 wcout<<str<<endl; wcout<<wcslen(str)<<endl; system("PAUSE"); return 0; }