High ASCII字符从bat文件到dos控制台的转化问题
2015-07-20 15:52
260 查看
背景是这样的,由于项目需要,需要用silent install的方式安装一些程序,而安装参数中有一些High ASCII字符,如ùé。通过代码,使用默认编码(ANSI,说明下,我用的是法语的系统)创建bat文件,并将这种字符写入文件,是没有问题的。然而在执行bat文件的时候却发现,High ASCII字符在控制台中显示成了其他的字符!!!自己想了半天没想明白怎么回事,因为控制台编码也是用的默认的latin-1,文件保存也是用的默认的编码(在FR的系统上,ANSI就是latin-1吧,我是这么认为的).
于是搜索啊,这种东西,国内的资料比较少啊。。。不过功夫不负有心人,找到了一个国外的论坛的帖子,地址送上http://stackoverflow.com/questions/9849486/is-it-possible-to-use-extened-ascii-characters-in-bat-file
解决方法:
1. 使用utf-8来存文件,第一行是一个空行,第二行写上 CHCP 65001
2. 将控制台的codepage设置成65001(utf-8的codepage),
3. 将控制台字体设置成Lucida Console,这个在法语/德语系统上默认是raster font
这样就可以了。
顺便提一下,控制该默认值的注册表路径是 HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\
可以从通过UI将控制台字体设置成Lucida Console, 然后将上面的注册表导出,以后要改的话直接通过 "regedit /s 备份的注册表名" 即可以用脚本设置字体了,也可以通过脚本将注册表HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\下的每一个键值设置成目标的Lucida的键值对.
于是搜索啊,这种东西,国内的资料比较少啊。。。不过功夫不负有心人,找到了一个国外的论坛的帖子,地址送上http://stackoverflow.com/questions/9849486/is-it-possible-to-use-extened-ascii-characters-in-bat-file
解决方法:
1. 使用utf-8来存文件,第一行是一个空行,第二行写上 CHCP 65001
2. 将控制台的codepage设置成65001(utf-8的codepage),
3. 将控制台字体设置成Lucida Console,这个在法语/德语系统上默认是raster font
这样就可以了。
顺便提一下,控制该默认值的注册表路径是 HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\
可以从通过UI将控制台字体设置成Lucida Console, 然后将上面的注册表导出,以后要改的话直接通过 "regedit /s 备份的注册表名" 即可以用脚本设置字体了,也可以通过脚本将注册表HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\下的每一个键值设置成目标的Lucida的键值对.
相关文章推荐
- 多年后,才知道自己是多么的无知 !
- Linux学习问题记录{}{}{}{}{}{}
- jquery ajax协调SpringMVCD实现局部刷新IV
- RMAN的show,list,crosscheck,delete命令
- python 读取配置文件
- github命令备忘录
- 奔跑中的2015 — 提剑的少年
- VS2008下编译生成exe的设置
- javascript调用android代码
- shell编程LANMP一键安装脚本
- 面向对象与设计模式
- next_permutation函数的应用
- Diesel powered Vendor is known as a area great model of very important reckoning
- 内部类的应用
- Ubuntu下搭建Ruby on Rails开发环境
- select2常用操作
- 排序
- ios 拍照 照片过小 UIImagePickerController
- phonegap安装与环境配置
- 【转】 MATLAB中RGB图像的各分量灰度直方图