外语字符替换为“?”

时间:2014-06-05 14:41:53

标签: c windows command-line command

我正在开发一个以文件/文件夹名称作为输入的程序。目前,当我尝试运行一个在其名称中有外语字符的文件时,它被替换为?对于它的每一个角色。我在命令提示符下运行我的exe,因此尝试运行特定文件会导致错误。当我在命令提示符下使用DIR时它会显示?对于文件名的每个字符。有没有办法在命令提示符下显示实际的外语字符,因为我认为这可能导致我的exe不能处理任何这些文件。 这是我试图阅读的文字 - 科普书籍推展教案正在被取代?在控制台上。

1 个答案:

答案 0 :(得分:0)

命令提示符只能显示当前ACP中的字符。那么,如果你的文件名称在ACP之外,你会看到吗?您可以使用changecp来选择不同的CP,但是在DOS框中没有完整Unicode的代码页。

在您的代码中,您需要学会使用' W'用于处理完整unicode路径名的API。最安全的是#define _UNICODE并统一使用它。