0

当我完全像这样编码时:

   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。

4

1 回答 1

1

这只是字体问题。编辑器显然更聪明地为文件名中的字形选择合适的字体。值得一提的是,在 Windows 7 上,Far(使用 Consolas)和 Explorer(使用 Segoe UI)都可以正确显示文件名:

在此处输入图像描述 在此处输入图像描述

但如前所述,数据是正确的;这只是一个显示问题。

于 2012-07-24T13:50:03.643 回答