在cmd中执行jar的编码问题

文章讲述了在CMD中执行包含中文字符的jar包时遇到的编码问题。问题源于CMD默认使用GBK编码,而程序读取的是UTF-8编码的文件。尝试通过改变CMD编码模式和设置JVM启动参数-Dfile.encoding=utf-8来解决,最终后者成功解决了问题。
摘要由CSDN通过智能技术生成

本文主要以自己的例子叙述了在cmd中执行jar包时,遇到的编码问题,以及解决问题的过程。

问题:程序在eclipse中进行开发,涉及一些IO操作,且需要在不同的机子上跑,因此为了方便,将代码打包成了jar包。但是发现在eclipse中结果运行正确,在cmd中运行结果却错误。对问题进行调试,最后发现问题出在以下代码中:

if(splitLine[8].equals("空车"))

该判断中涉及到了中文字符,数据是从一个utf-8编码的文件中读取的,而我们在eclipse中一般都设置默认编码为utf-8编码,因此可以正确判断。但是cmd默认的却是以gbk编码来执行,因此这里的判断显然会出错。

尝试1:通过改变cmd默认编码方式来执行此jar包
可以通过http://jingyan.baidu.com/article/e75aca85440f01142edac636.html该方式来改变cmd默认编码。即在cmd命令窗口中输入:

chcp 65001

cmd将会进入u

CMD运行Jar包时出现乱码问题的原因是CMD默认的编码是GBK,而Jar包可能是以UTF-8编码进行编译的。为了解决这个问题,可以通过以下方法进行操作: 1. 设定CMD编码为UTF-8。可以在CMD输入命令chcp 65001来将编码格式改为UTF-8,这样就可以正确显示文字符了。 2. 为了防止日后再次遇到这个问题,可以将运行Jar指定编码参数,在运行Jar包的命令前加上java -Dfile.encoding=utf-8 -jar project.jar。这样可以确保Java运行时使用UTF-8编码来处理文字符。 另外,你还可以将以上命令打包成bat文件,以方便在CMD运行。通过这些方法,你就可以解决在CMD运行Jar包时出现乱码的问题了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Java丨Cmd运行Jar出现乱码问题](https://blog.csdn.net/bbcckkl/article/details/81785016)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [windows 环境下cmd运行jar文乱码](https://blog.csdn.net/gkkljy/article/details/120225353)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值