在Windows下的wchar_t实现实际上只支持内存保存,输出只能到ANSI字符集,连UTF-8都不支持。要使用UTF-8还得手动转换。
使用UTF-8的方法是调用
使用UTF-8的方法是调用
WideCharToMultiByte(CP_UTF8, 0, wstr, -1, ubuf, sizeof(ubuf), NULL, NULL);
MultiByteToWideChar(CP_UTF8, 0, ustr, -1, wbuf, sizeof(wbuf));如果需要动态分配内存,把sizeof(ubuf)置零就可以获得需要的字节数了。int nchr = WideCharToMultiByte(CP_UTF8, 0, wstr, -1, ubuf, 0, NULL, NULL);
int nchr = MultiByteToWideChar(CP_UTF8, 0, ustr, -1, wbuf, 0);UTF-16就比较简单了,直接fread或fwrite即可。