IronRuby:请教如何在DOS窗口正确显示UTF-8字符后执行bat文件呢?

简介:

IronRuby - 编写自动化测试脚本中介绍了在NetBeans下显示的结果是正确的,而在DOS下显示乱码,如下图所示:

   

  实际应用中是执行一个bat文件进行自动化测试,而不是在Netbeans下,而这个明显又是文字编码的问题,我想应该会有什么设置可以在DOS中显示中文。在IronRuby - 文件编码惹的祸中介绍了Ruby文件使用的UTF-8格式,于是上网收了一下如何在DOS窗口显示UTF-8字符的文章,找到了解决办法。

解决步骤

以下介绍一下如何设置DOS窗口显示UTF-8字符。

  1. 打开CMD.exe命令行窗口
  2. 通过 chcp命令改变代码页,UTF-8的代码页为65001
    1 chcp 65001<BR>
  3. 执行该操作后,代码页就被变成UTF-8了。但是还需要修改窗口属性的字体才能正确显示UTF-8字符,在命令行标题栏上点击右键,选择【属性】-【字体】,将字体修改为True Type字体【Lucida Console】,然后点击确定将属性应用到当前窗口。可以保持这个设置,免得下次还需要设置。
  4. 通过以上操作后,显示出来的内容可能不完全,这时我们可以通过最小化后再最大化命令行窗口解决

解决后显示正确

修改后,再执行IronRuby - 编写自动化测试脚本中的计算器自动化脚本时,显示正确,截图如下:

遗留问题

虽然显示正确了,但是设置后,双击bat文件或者在cmd窗口执行bat文件时没有反应,不知道有谁知道如何解决这个呢?

lostinyoureyes提供的办法可以解决: chcp 65001 > nul && ir.exe -KU -X:ShowClrExceptions TestCalc.rb && pause

 





 本文转自 jingen_zhou 51CTO博客,原文链接:http://blog.51cto.com/zhoujg/517997,如需转载请自行联系原作者


相关文章
|
4月前
|
Linux 索引 关系型数据库
Linux 终端命令之文件目录操作,对比Dos相关命令
Linux 终端命令之文件目录操作,对比Dos相关命令
79 0
Linux 终端命令之文件目录操作,对比Dos相关命令
|
9月前
|
Windows
Windows DOS窗口查看历史执行过的命令的三种方式
Windows DOS窗口查看历史执行过的命令的三种方式
|
10月前
|
Java
UltraEdit软件输出教你如何舍弃打开DOS窗口操作
最近在学习J2SE视频,其中需要用到UltraEdit软件,视频中讲到每一次都需要:打开DOS窗口——输入javac+程序全名(带格式)——检测配置——成功再输入java+程序名——得出结果!
|
11月前
|
Windows
WGCLOUD日常使用 - windows启动server,dos窗口显示乱码的问题处理
首先,这个乱码没有影响,忽略即可 这个是windows窗口编码导致的,不会影响程序运行,server/log下日志文件没有出现乱码,我们主要看日志文件
WGCLOUD日常使用 - windows启动server,dos窗口显示乱码的问题处理
|
12月前
|
C++
C++ 设置控制台文本属性画一个DOS时代的字符窗口
C++ 设置控制台文本属性画一个DOS时代的字符窗口
57 0
|
存储 Java 编译器
这是你必须掌握的 dos 命令 10分钟带你玩转windows小黑窗口!
我们使用计算机接触最频繁的就是DOS。DOS是英文Disk Operating System的缩写,意思是“磁盘操作系统”,顾名思义,DOS主要是一种面向磁盘的系统软件,说得简单些,DOS就是人给机器下达命令的集合,是存储在操作系统中的命令集,有了DOS,我们就可以更容易理解怎么给机器下命令。
这是你必须掌握的 dos 命令 10分钟带你玩转windows小黑窗口!
|
编译器 Windows
PE文件学习--Dos头部
PE文件学习--Dos头部
156 0
|
数据库
MySQL---数据库从入门走向大神系列(三)-修改数据库编码/DOS窗口编码
MySQL---数据库从入门走向大神系列(三)-修改数据库编码/DOS窗口编码
139 0
MySQL---数据库从入门走向大神系列(三)-修改数据库编码/DOS窗口编码
|
IDE 开发工具 C++
Python命令行解析:IDE内点击Run运行代码直接得出结果、基于TF flags(或argparse、sys.argv)在Dos内命令行(一条命令)调用代码文件得出结果
Python命令行解析:IDE内点击Run运行代码直接得出结果、基于TF flags(或argparse、sys.argv)在Dos内命令行(一条命令)调用代码文件得出结果