问题是在非英语版本的XP代码页上,控制台和gui应用程序有所不同,例如,如果我在我的波兰语版本中写入控制台:
echo zażółć gęślą jaźń > somefile.txt
该文件的内容为:
zaľ˘† g©lĄ ja«ä
如果我将其放入cmd文件中,则不会发生这种情况。这是带有波兰字母的文本。但是,如果我创建一个使用非英语字符命名的文件或目录,那么无论是从cmd还是从手指运行,效果总是胡言乱语。
所以我的问题是如何获得其余windows运行的第二个代码页。在我的情况下,这个CP是1250 - 但如何从c ++获得这个数字?
GetConsoleCP()
和GetConsoleOutputCP()
都返回852(这是正确的)而GetThreadLocale()
则返回1045。
如果我尝试chcp 1045
,则会出现“错误的代码页”。