我们的自动化测试框架在启动应用程序(.exe)时创建批处理文件。在我的情况下,此应用程序将用户名和密码作为参数。作为其中一个测试用例的一部分,username是中文名称。测试框架正在创建具有正确中文用户名的批处理文件,但应用程序的UI正在相应的用户名字段中获取一些垃圾值(带有问号和一些其他符号)。因此,身份验证失败。
我搜索并尝试在生成的批处理文件中使用chcp codepage命令,更新的批处理文件具有不同的代码页编号值(1250,1252,1253,65001,..)。但没有任何效果。但是当我使用代码页编号1250时,应用程序正确接收了一个中文字符(三个中的第一个字符),但是其他字符的垃圾值。
实施例。批处理文件的内容:xxx.exe -user" abc" -password" xyz"
如何解决此问题,无法通过搜索互联网找到解决方案。
答案 0 :(得分:0)
我的“€”符号有类似的问题。我发现的onyl方法是将cmd控制台的字体更改为识别符号的字体。但是,这只有在从已打开的控制台调用bat文件时才有帮助。双击bat文件不起作用,因为字体被重置为系统默认值。最后我通过更改注册表中的默认cdm字体来修复它,但我不确定这是否对您有所帮助。虽然我选择了一个字体,其中包含任何其他拉丁字符以及一些特殊符号,如€,ö,ß等,但我不确定是否有包含中文和拉丁字符的字体。
答案 1 :(得分:0)
您需要在文本编辑器中选择“ ANSI”作为编码。
答案 2 :(得分:0)
解决方案是 CHCP 65001 对于utf8或您使用的任何页面 -decas