我们在Team Foundation Server (TFS)中有一个项目,其中有一个非英语字符(š)。当尝试编写一些与构建相关的脚本时,我们偶然发现了一个问题——我们不能将这个字母传递给命令行工具。命令提示符或其他东西会把它弄乱,tf.exe实用程序无法找到指定的项目。

我尝试了不同格式的.bat文件(ANSI, UTF-8,带BOM和不带BOM),以及用JavaScript编写脚本(本质上是Unicode) -但运气不好。如何执行程序并传递一个Unicode命令行?


当前回答

对于类似的问题(我的问题是在命令提示符上显示来自MySQL的UTF-8字符),

我是这样解决的:

我把命令提示符的字体改成了Lucida Console。(此步骤必须与您的情况无关。它只与你在屏幕上看到的东西有关,而与角色本身无关)。 我把代码页改成了Windows-1253。您可以在命令提示符中通过“chcp 1253”执行此操作。它适用于我想要查看UTF-8的情况。

其他回答

一个更好更干净的方法是:安装可用的免费微软日语包。(其他东方语言包也可以,但我已经测试了日语包。)

这将为您提供具有较大字形集的字体,使它们成为默认行为,更改各种Windows工具,如cmd, WordPad等。

一个非常简单的选择是安装一个Windows bash shell,如MinGW并使用它:

有一点学习曲线,因为你将需要使用Unix命令行功能,但你会喜欢它的力量,你可以将控制台字符集设置为UTF-8。

当然,您还可以得到所有常见的*nix好东西,如grep、find、less等。

检查非unicode程序的语言。如果你在Windows控制台中有俄语问题,那么你应该在这里设置俄语:

对于类似的问题(我的问题是在命令提示符上显示来自MySQL的UTF-8字符),

我是这样解决的:

我把命令提示符的字体改成了Lucida Console。(此步骤必须与您的情况无关。它只与你在屏幕上看到的东西有关,而与角色本身无关)。 我把代码页改成了Windows-1253。您可以在命令提示符中通过“chcp 1253”执行此操作。它适用于我想要查看UTF-8的情况。

我也有同样的问题(我来自捷克共和国)。我安装了英文的Windows,而且我必须使用共享驱动器上的文件。文件的路径包含捷克特有的字符。

适合我的解决方案是:

在批处理文件中,修改字符集页

批处理文件:

chcp 1250
copy "O:\VEŘEJNÉ\ŽŽŽŽŽŽ\Ž.xls" c:\temp

批处理文件必须保存在CP 1250中。

注意,控制台不会正确地显示字符,但它会理解它们……