Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 由“”替换的外语字符_C_Windows_Command Line_Command - Fatal编程技术网

C 由“”替换的外语字符

C 由“”替换的外语字符,c,windows,command-line,command,C,Windows,Command Line,Command,我正在开发一个以文件/文件夹名称作为输入的程序。当前,当我尝试运行一个文件时,它的名称中有外语字符,它被替换为?对于每个角色。我正在命令提示符下运行exe,因此尝试运行特定文件会导致错误。当我在命令提示符下使用DIR时,它会显示?对于文件名的每个字符。有没有办法在命令提示符中显示实际的外语字符,因为我认为这可能会导致我的exe无法运行这些文件。 这是我想读的文本-科普書籍推展教案 哪个正在被替换为?在控制台上。命令提示符只能显示当前ACP中的字符。所以,如果你有文件名在ACP之外,你会看到?。您

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

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


在代码内部,您需要学习使用“W”API来处理完整的unicode路径名。最安全的做法是定义UNICODE并统一使用它

这个程序用的是什么编程语言?我用的是C语言。很难说出你的实际问题。。。从理论上讲,在控制台中显示所有unicode字符是可能的,但在现实中……忘了它吧。b若要获取不带?的文件名,请不要使用externl program dir,因为externl program dir无法正确执行此操作,而要在您的程序中使用ue FindFirstFileW等。@DeviceFan我的问题是如何运行字符替换为“”的文件?我正试图在控制台中运行我的exe。my exe采用的参数是文件名。请确保程序使用Unicode UTF-8进行通信。这在windows上是很难做到的。你能给我举个例子吗?因为我是初学者,这将极大地帮助我理解。谷歌的“tchar”或windows API Unicode和许多例子都会提供它们自己。使用std::wstring等。,除了转换一些代码之外,没有理由在自己的代码中使用TCHARpointers@deviantfan我能在C程序中使用STD::WStand吗?不,对不起,这是C++。但至少是wchar_t和char16_t和。。。在C中也有`TCHAR是Windows版本(有Unicode支持和没有Unicode支持)被同时使用的时代遗留下来的东西,用于编写可以为其中任何一个编译的程序。没有Unicode的Windows早就过时了,所以。关于控制台问题:如果你真的需要控制台,并且需要你的程序与其他没有控制台来源的程序兼容,那么你可能运气不好。如果您可以完全控制所有内容,那么可以使用UTF8,但在键盘上手动键入并不容易:Else:GUI