windows控制台无法编译含有汉字的java程序

windows控制台无法编译含有汉字的java程序

解决方法是:控制台输入

javac -encoding utf-8 FileName.java

以下简称那行代码

1.情形1:java程序使用UTF-8方式保存,控制台使用GBK方式编码,那行代码能有效解决问题。

  • cmd控制台编码方式如下
    在这里插入图片描述

  • java程序及编码方式如下
    在这里插入图片描述
    在这里插入图片描述

  • 最后控制台输出如下,显然,GBK编码方式不能将UTF-8编码方式中的汉字正确编码。
    在这里插入图片描述

  • 尝试将java程序中的汉字去掉,效果如下。

去掉注释
在这里插入图片描述

去掉注释后控制台可以正常运行java程序,但是无法正确输出中文字符。
在这里插入图片描述
去掉所有中文
在这里插入图片描述

程序能正常正确执行
在这里插入图片描述

上述去掉中文的尝试说明不同的编码方式下,只有中文会受到影响,字母的编码不会受到影响,但是正常情况下程序里不可避免会出现中文,继续尝试在不同编码方式下输出中文。

  • 运行那行代码
    输出结果
    在这里插入图片描述

此时我们发现,不仅注释中的中文能编译通过,输出语句中的中文也能正常输出,说明这条语句能解决中文编码问题。

2.情形2:java程序使用GBK编码方式,控制台使用GBK编码方式,同种编码方式,不会出现问题,所需要做的只是去百度转码方式。

在这里插入图片描述
在这里插入图片描述

3.情形3:java程序使用UTF-8编码方式,控制台使用UTF-8编码方式,我们再来看看针对都是UTF-8编码方式,会不会出现问题呢,答案是有点问题。

在这里插入图片描述
在这里插入图片描述

控制台输入chcp 65001,查看属性
在这里插入图片描述

此时发现还是不能运行,这个问题暂时不知道为什么,只能等以后去探索了。

在这里插入图片描述

此时尝试输入那行代码

在这里插入图片描述

发现此时中文自动不显示。

4.情形4:java程序UTF-8,控制台GBK,输入那行代码还是有效的。

在这里插入图片描述

尝试输入代码javac -encoding utf-8 Hello.java,发现程序能正常执行。

在这里插入图片描述

综上:乱码问题是真的迷,有效的方式当然是统一编码方式,比如上述统一GBK编码方式就能正常输出,但是统一UTF-8模式就不行,再比如不同的编码方式下,输入一行代码就能解决问题而不需要统一编码,就是原理百度不出来。但,只要问题解决了就行,基本操作就是不断百度尝试,这还是真的非常需要耐心呢。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值