当我完全像这样编码时:
setlocale(LC_ALL,"");
wchar_t myString2[] = { 0x0061, 0x2660, 0x2663, 0x2665, 0x2666, 0x0000 };
fd = _wfopen(myString2, L"w");
或者
fd = _wfopen(myString2, L"w, ccs=UTF-16");
结果不是我所期望的。预期:a♠♣♥♦,但 explorer 出现 a 和 4 个小方块。但是,当我在资源管理器中输入文件重命名,然后复制文件名时,它会正确插入到编辑器中。当我输入显示此类字符的文件名时,或者假设在编辑器中复制和粘贴中文字符时,编辑器会在文件名中显示小方块。使用 -fexec-charset=xxxx 的实验甚至不会产生预期的结果。鉴于复制和粘贴实验的结果,我猜想正在发生一些非常愚蠢的事情。这是真的,解决方案应该非常简单......
系统:Win XP、Mingw 20120426、Ansi-C - 所以不需要 STLport。