notepad++ java编码,输出中文字符时,编译出错,如图,

修改编译命令为javac-encodingUTF-8Exerc02.java后问题解决,问一下,能更改notepad++设置来解决吗?毕竟一直这么编译有点麻烦...... 修改编译命令为javac -encoding UTF-8 Exerc02.java后问题解决,
问一下,能更改notepad++设置来解决吗?毕竟一直这么编译有点麻烦...
展开
 我来答
匿名用户
2018-08-04
展开全部
由于JDK是国际版的,在编译的时候,如果我们没有用 -encoding
参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,WIN7,它的值为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,当然就会出现不兼容的情况。
解决办法是:应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java
获取系统默认编码:
System.out.println("Default Charset=" + Charset.defaultCharset()); System.out.println("file.encoding=" + System.getProperty("file.encoding")); System.out.println("Default Charset in Use=" + FileTools.getDefaultCharSet()); public static String getDefaultCharSet() { OutputStreamWriter writer = new OutputStreamWriter(new ByteArrayOutputStream()); String enc = writer.getEncoding(); try { writer.close(); } catch (IOException e) { e.printStackTrace(); } return enc; }
使用的时候最好是统一的格式,比如java文件保存格式也同样为 UTF-8 格式的

在命令行的中使用时先设置一个java变量
set JAVA_TOOL_OPTIONS=-Dfile.encoding=utf-8 -Duser.language=en -Duser.country=US
通过命令行对JAVA文件进行编译

javac -d ../ *.java
这样生成出来的.CLASS文件格式也同样为 UTF-8 编码的

同样在执行java或者jar包前,要设置一个临时的或者永久的变量

set JAVA_TOOL_OPTIONS=-Dfile.encoding=utf-8 -Duser.language=en -Duser.country=US
这样才可以保证你的程序在运行java时,使用的是UTF-8编码格式
Spacedoggy
2013-02-18 · TA获得超过192个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:214万
展开全部
npp++的菜单在View和Language中间有一项就是Encoding, 可以非常方便的调整编码, 比Kate, Gedit做的还要好

其实应该更改的是java的设置, 让它默认以UTF-8来处理, 比GBK更有优势. 试试给文件加个BOM, 看看Java能不能认出来它是UTF-8
更多追问追答
追问

没反应啊,和原来情况一样

追答
我是指更改javac的处理源码的默认编码, NPP++继续保持UTF-8. 目前来看你的javac使用GBK编码来处理的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cuichangyang66
推荐于2018-04-06 · 超过35用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:58.5万
展开全部
文件 另存为 命令,弹出对话框,最底下一行,保存按钮前边,不是可以选择编码吗?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
496222103
2013-02-17
知道答主
回答量:49
采纳率:0%
帮助的人:18.6万
展开全部
首选项 新建 编码 可以更改默认 改成和你java一样的就行了
追问
改了,没用啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z339338792
2013-02-18
知道答主
回答量:33
采纳率:0%
帮助的人:16.8万
展开全部
设置→首选项→新建→编码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式