「javac乱码」Java编译乱码
本篇文章给大家谈谈javac乱码,以及Java编译乱码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java怎么都是*
- 2、安装好jdk.8配置好环境后,在dos运行javac却出现乱码,这是什么情况?
- 3、输入Javac出现乱码怎么办
- 4、JAVA 乱码 根本原因是什么
- 5、在tmd中javac出行乱码
java怎么都是*
InputStreamReader in = new InputStreamReader(new FileInputStream(“demo.txt”),”UTF-8”);
给InputStreamReader指定解码编码,这样二者统一就不会出现乱码了。
下面说说字符输出流。
字符输出流的原理和字符输入流的原理一样,也可以看做是包装流,其底层还是采用字节输出流来写文件。只是字符输出流根据指定的编码将字符转换为字节的。字符输出流的主要类是:OutputStreamWriter。Java api解释如下:OutputStreamWriter 是字符流通向字节流的桥梁:使用指定的 charset 将要向其写入的字符编码为字节。它使用的字符集可以由名称指定或显式给定,否则可能接受平台默认的字符集。说的很明白了,它需要一个编码将写入的字符转换为字节,如果没有指定则采用GBK编码,那么输出的字节都将是GBK编码,生成的文件也是GBK编码的。如果采用以下方式构造OutputStreamWriter:
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(“dd.txt”),”UTF-8”);
那么写入的字符将被编码为UTF-8的字节,生成的文件也将是UTF-8格式的。
问题二: 既然读文件要使用和文件编码一致的编码,那么javac编译文件也需要读取文件,它使用什么编码呢?
这个问题从来就没想过,也从没当做是什么问题。正是因为问题一而引发的思考,其实这里还是有东西可以挖掘的。下面分三种情况来探讨,这三种情况也是我们常用的编译java源文件的方法。
1.javac在控制台编译java类文件。
通常我们手动建立一个java文件Demo.java,并保存。此时Demo.java文件的编码为ANSI,中文操作系统下就是GBK.然后使用javac命令来编译该源文件。”javac Demo.java”。Javac也需要读取java文件,那么javac是使用什么编码来解码我们读取的字节呢?其实javac采用了操作系统默认的GBK编码解码我们读取的字节,这个编码正好也是Demo.java文件的编码,二者一致,所以不会出现乱码情况。让我们来做点手脚,在保存Demo.java文件时,我们选择UTF-8保存。此时Demo.java文件编码就是UTF-8了。我们再使用”javac Demo.java”来编译,如果Demo.java里含有中文字符,此时控制台会出现警告信息,也出现了乱码。究其原因,就是因为javac采用了GBK编码解码我们读取的字节。因为我们的字节是UTF-8编码的,所以会出现乱码。如果不信的话你可以自己试试。那么解决办法呢?解决办法就是使用javac的encoding参数来制定我们的解码编码。如下:javac -encoding UTF-8 Demo.java。这里我们指定了使用UTF-8来解码读取的字节,由于这个编码和Demo.java文件编码一致,所以不会出现乱码情况了。
2.Eclipse中编译java文件。
我习惯把Eclipse的编码设置成UTF-8。那么每个项目中的java源文件的编码就是UTF-8。这样编译也从没有问题,也没有出现过乱码。正是因为这样才掩盖了使用javac可能出现的乱码。那么Eclipse是如何正确编译文件编码为UTF-8的java源文件的呢?唯一的解释就是Eclipse自动识别了我们java源文件的文件编码,然后采取了正确的encoding参数来编译我们的java源文件。功劳都归功于IDE的强大了。
3.使用Ant来编译java文件。
Ant也是我常用的编译java文件的工具。首先,必须知道Ant在后台其实也是采用javac来编译java源文件的,那么可想而知,1会出现的问题在Ant中也会存在。如果我们使用Ant来编译UTF-8编码的java源文件,并且不指定如何编码,那么也会出现乱码的情况。所以Ant的编译命令有一个属性” encoding”允许我们指定编码,如果我们要编译源文件编码为UTF-8的java文件,那么我们的命令应该如下:
指定了编码也就相当于”javac –encoding”了,所以不会出现乱码了。
安装好jdk.8配置好环境后,在dos运行javac却出现乱码,这是什么情况?
设置一下系统的语言,控制面板——语言然后在列表中找到简体中文,取消以后重新选择添加。
然后回到语言选择界面,选择你新添加的语言,点击选项,将简体中文设置为显示语言,然后重启,如果不行,给你建议,装win7,win8还不稳定
输入Javac出现乱码怎么办
不但是你的javac.exe显示中文乱码!是所有的DOS程序都有这样的问题!是DOS窗口属性的问题!你点击最上面,右键属性出现--选项--当前代码页:936(我的是936) 详情参考: 你可以用chcp 936设置
JAVA 乱码 根本原因是什么
java出现乱码的原因是
.java 文件中的编码格式和命令提示符的指令不一致导致的
比如.java 使用的是utf-8,windows环境下命令提示符编码是gbk,在使用javac 命令进行对.java文件进行编译的时候,.java文件中的中文字符就会出现 乱码.
出现这样的情况,处理方式是通过现在编译编码-encoding 处理
javac -encoding utf-8 Test.java
在tmd中javac出行乱码
可以用右键点击我的电脑,点击属性,点击高级系统设置,点击环境变量,选择在系统变量中新建一个系统变量设置编辑环境变量名为JAVA、TOOL、OPTIONS,然后编辑环境变量值为Dfile、encoding等于UTF。
javac乱码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java编译乱码、javac乱码的信息别忘了在本站进行查找喔。
发布于:2022-11-30,除非注明,否则均为
原创文章,转载请注明出处。