解决dos中的乱码以及编码问题

解决DOS中的乱码以及编码的问题
 
 
 
操作系统:windows7 64-bit
 
 
 
    昨天安装了oracle11g ,安装完后并没有立刻重启,第二天重启机器的时候,发现由原来的开机时间36秒变成了1分22秒,今天就突然想优化一下开机速度——把oralce的相关服务停掉,等用的时候再起来。后来想想,总是去服务里面停比较费事,干脆写个批处理命令来开启和停止oracle的相关服务吧。 
 
 
 
    我想的稍微多了些,把每次的开启和停止都记录到日志文件里面去(其实在自己机器上没什么必要的,毕竟只是测试机器,由于习惯问题,我喜欢做相关的操作日志记录,呵呵),不太习惯用英文,就写了几个中文的字作为了注释,当我用sublime text2 打开.bat 文件进行编写的时候,发现汉字都乱码了,当时意识到windows下的默认编码是gbk的,还是用UTF-8的编码比较好,这样不易出现乱码的问题。好吧,把文件格式都改成了UTF-8编码进行了保存。
 
 
 
批处理命令写好,开始试试效果吧,开启和停止相关服务都没有问题了,但是日志记录却乱码了,⊙﹏⊙b汗。首先想到的就是dos输出是用系统的默认编码(gbk)的,我文件可是使用UTF-8编写的,肯定会出乱码楼。当时的想法就是在批处理文件中手动设置临时编码来进行输出,可是对这块不了解,百度吧,关键字:dos中设置编码,结果还真的有人遇到了这样的问题,不过是在做PHP项目中出现的,但是我也一样可以借用,呵呵。原来系统会有很多的字体代码的,在执行批处理前设置一下就OK了,命令如下:
 
chcp 65001 问题就解决了,65001是UTF-8的代码页,其他如下:
 
 
 
MS-DOS为以下国家和语言提供字符集:代码页描述
 
936 简体中文(默认)
 
950 繁体中文 
 
65001 UTF-8
 
1258 越南语
 
1257 波罗的语
 
1256 阿拉伯语
 
1255 希伯来语
 
1254 土耳其语
 
1253 希腊语
 
1252 拉丁 1 字符 (ANSI)
 
1251 西里尔语
 
1250 中欧语言
 
949 朝鲜语
 
932 日语
 
874 泰国语
 
850 多语种 (MS-DOS Latin1)
 
437 MS-DOS 美国英语
 
 
 
以上就是本次编写批处理命令中遇到的比较特殊的问题,以此记录,以备后用。
 
 
注:编写的批处理命令我在顶端空出来一行,才能使 chcp 65001 生效,这应该是和UTF-8文件有无BOM编码格式有关,我选择的是UTF-8有BOM编码格式保存的文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值