垃圾字符替换Windows命令提示符中的"/"

Nag*_*aga 0 windows fonts command-line raster

我面临一个奇怪的问题.我在Windows命令提示符下看到,每个'/'字符都被垃圾字符(日元符号)替换.我选择了两种字体类型"MS Gothic"和"Raster".但同样的问题.如果我使用Raster,则问题是间歇性的.请让我知道如何解决问题.

谢谢,娜迦

J.J*_*.J. 5

键入chcp在命令提示符下,我敢打赌,你会看到Active code page: 932

Windows控制台具有代码页的概念,即前unicode天的遗留物,其中字节0-255被映射到不同的字符,具体取决于语言.虽然字符az,AZ,0-9是一致的,但较少使用的字符被映射到目标语言中流行的字符.

代码页932中,反斜杠被映射到日元字符.

这是一个常见问题.请参阅Microsoft在MSDN上的说明:

警告 日语操作系统上使用的Windows代码页和OEM代码页字符集包含日元符号(¥)而不是反斜杠().因此,Yen符号是NTFS和FAT文件系统的禁止字符.将Unicode映射到日语代码页时,WideCharToMultiByte和其他转换函数将反斜杠(U + 005C)和普通的Unicode Yen符号(U + 00A5)映射到同一个字符.出于安全原因,您的应用程序通常不应允许Unicode字符串中的字符U + 00A5可能被转换为用作FAT文件名.有关更多信息,请参阅安全注意事项:国际功能.

UPDATE

抱歉延迟了,我花了一点时间回忆起我最初读到的内容.最好的参考就是迈克·卡普兰的博客文章在这里.michkap是所有unicode最好的Microsoft博客.如果你处理字符集,编码问题和国际化的黑暗角落,他的博客是必不可少的参考.

从他在日元字符上的输入作为反斜杠:

...在日语代码页932上,0x5c是YEN SIGN,在韩语代码页949上,0x5c是WON SIGN.

这并不是说0x5c不会充当路径分隔符 - 它仍然可以.而且也不是说Yen和Won(U + 00a5和U + 20a9)的Unicode代码点确实充当了路径分隔符 - 因为它们没有.

...

实际上,在日本和韩国使用各自的货币符号作为路径分离器的多年基于代码页的系统之后,相信客户只是习惯于这种外观.因此,除了这些符号之外,没有兴趣将该外观(当系统设置为日语或韩语时)更改为任何内容.

为了支持这种期望,日语和韩语的字体,每当默认的系统区域被设定为日语或韩语,将分别显示货币符号,而不是反斜杠时被示出U + 005C.

我相信,你很难找到比那个更好的参考.

  • Michael Kaplan的博客是一个很棒的资源.虽然,我个人从中学到的主要内容是,对于像我这样的凡人来说,Unicode处理太难了.:[ (2认同)