文档章节

DOS运行jar程序输出文件中文乱码

一口今心
 一口今心
发布于 2017/08/28 16:27
字数 628
阅读 63
收藏 0

http://blog.csdn.net/gyz666/article/details/68065110

我的问题和如上博客一样即:

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

我的需求:从多个记事本文件中读取数据,然后写入一个记事本中。

我的问题:写入记事本后中文乱码。

如何解决:以键值的形式在启动jvm时规定一些输入参数(cmd中执行时,只需在java后面加上-Dfile.encoding=utf-8即可

造成的原因思考:

https://jingyan.baidu.com/article/0f5fb099f170566d8334eabf.html

如上经验所说:

 由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格式转化为UNICODE格式了。当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。

我的编译:我使用编码格式为UTF-8的eclipse工具打包生成jar文件

我的运行:使用操作系统自带的DOS环境(GBK编译)解释运行,并写入ANSI格式的记事本

我的生成:带有ANSI中文乱码的文件,使用工具强行转换为utf-8,也会有乱码的中文和格式

 

© 著作权归作者所有

共有 人打赏支持
一口今心
粉丝 0
博文 25
码字总数 10180
作品 0
西安
程序员
Windows10 命令行中文显示乱码,无法输入中文,查看中文文件夹和文件名称显示为乱码

最近,新购的OMEN HP Laptop,打开dos窗口,PIMG www.51ct.com,中文显示为乱码。 经过两天的百度,最后参考 http://blog.csdn.net/daxiang12092205/article/details/52748110 按如下操作,问...

lsh2018
2017/03/28
0
0
DOS命令的一些技巧总结(大纲)

1.设置dos启动的默认路径 安全模式登录(开机启动按F8),依次右键单击我的电脑--管理--本地用户和组-用户--administrator--配置文件--本地路径--输入“C:WINDOWSsystem32”,这样我们就能使...

述而不作
2012/02/29
0
0
codeblocks总是出现中文乱码,怎么办?

coding的时候,最折磨人的莫过于一个IDE对中文支持不够好. 最近在用codeblocks,就又一次碰到这问题(为什么不自禁的说'又'...?) 好!言归正传,此问题我想到了2种解决的办法: 1.简单粗暴型的:强制...

骑着小猪啪啪啪
01/04
0
0
DOS窗口的编码页从UTF-8调回GBK

之前在DOS窗口操作MySQL数据库的时候,将编码页从GBK设置成了UTF-8,解决了在DOS窗口显示MySQL数据库中的表中的中文字符出现乱码的问题。但是除此之外,DOS窗口显示的其他中文字符都是乱码。...

天蚕宝衣
2016/05/11
55
3
Go 在windows命令行下中文输出乱码问题解决方法

Windows下CMD执行Go中文乱码问题解决方法 因为Go的编码时UTF-8,而cmd的活动页是cp936(GBK),因而乱码。解决方法: 如何在DOS窗口中显示UTF-8字符 在中文Windows系统中,如果一个文本文件是...

羊驼君
2013/06/15
1K
4

没有更多内容

加载失败,请刷新页面

加载更多

20.27 分发系统介绍~ 20.30 expect脚本传递参数

分发系统介绍分发系统-expect讲解(也就是一个分发的脚本)场景:业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者lnmp,最好还需要吧代码上传到服务器上;但是因...

洗香香
20分钟前
1
0
设计一个百万级的消息推送系统

前言 首先迟到的祝大家中秋快乐。 最近一周多没有更新了。其实我一直想憋一个大招,分享一些大家感兴趣的干货。 鉴于最近我个人的工作内容,于是利用这三天小长假憋了一个出来(其实是玩了两...

crossoverJie
26分钟前
1
0
软件架构:5种你应该知道的模式

Singleton(单例模式)、仓储模式(repository)、工厂模式(factory)、建造者模式(builder)、装饰模式(decorator)……大概每个上课听讲的程序员都不会陌生——软件的设计模式为我们提供...

好雨云帮
38分钟前
2
0
OSChina 周二乱弹 —— 这只是一笔金钱交易

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《暮春秋色》- 窦唯 / 译乐队 《暮春秋色》- 窦唯 / 译乐队 手机党少年们想听歌,请使劲儿戳(这里) @我没有抓狂:跨服聊...

小小编辑
50分钟前
516
16
df命令、du命令 、磁盘分区

9月25日任务 4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区 4.1、命令 :df #磁盘空间使用情况 [root@zgxlinux-02 ~]# df 按字节显示 1000Byte=1KB 1000KB=1MB 1000MB=1GB ...

zgxlinux
58分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部