博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
High ASCII字符从bat文件到dos控制台的转化问题
阅读量:5158 次
发布时间:2019-06-13

本文共 866 字,大约阅读时间需要 2 分钟。

背景是这样的,由于项目需要,需要用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的键值对.

转载于:https://www.cnblogs.com/byron0918/p/4661650.html

你可能感兴趣的文章
[Java] Java record
查看>>
jQuery - 控制元素显示、隐藏、切换、滑动的方法
查看>>
postgresql学习文档
查看>>
Struts2返回JSON数据的具体应用范例
查看>>
js深度克隆对象、数组
查看>>
socket阻塞与非阻塞,同步与异步
查看>>
团队工作第二天
查看>>
System类
查看>>
tableView
查看>>
Happy Great BG-卡精度
查看>>
Xamarin Visual Studio不识别JDK路径
查看>>
菜鸟“抄程序”之道
查看>>
Ubuntu下关闭防火墙
查看>>
TCP/IP 邮件的原理
查看>>
原型设计工具
查看>>
windows下的C++ socket服务器(4)
查看>>
css3 2d转换3d转换以及动画的知识点汇总
查看>>
【Java】使用Eclipse进行远程调试,Linux下开启远程调试
查看>>
对Vue为什么不支持IE8的解释之一
查看>>
计算机改名导致数据库链接的诡异问题
查看>>