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