当我的代码完全像这样:
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♠♣♥♦,但探险家出现了一个然后是4个小方块。但是,当我在资源管理器中输入文件重命名,然后复制文件名时,它会正确插入编辑器。 当我输入显示这些字符的文件名时,或者说中文字符被复制并且编辑器粘贴在编辑器中,将小方块显示在文件名中。 使用-fexec-charset = xxxx的实验甚至不会产生所需的结果。鉴于副本的结果和粘贴实验,我想有一些非常愚蠢的事情正在发生。这是真的,解决方案应该是愚蠢的简单......
系统:Win XP,Mingw 20120426,Ansi-C - 所以不需要STLport。
答案 0 :(得分:1)
这只是一个字体问题。编辑器显然更聪明地为文件名中的字形选择合适的字体。对于它的价值,在Windows 7上,Far(使用Consolas)和Explorer(使用Segoe UI)都没有正确显示文件名的问题:
但如上所述,数据是正确的;这只是一个显示问题。