![剑指Java:核心原理与应用实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/443/47500443/b_47500443.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
第2章 第一个Java程序:HelloWorld
2.4.4 字符编码设置
通过上面的学习,我们已经可以使用Notepad++软件进行Java程序的开发了。
下面请大家使用Notepad++软件再建一个Java源文件(如AtGuiGu.java),并且编写如下所示的Java代码后,再编译和运行。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt002_71.jpg?sign=1739137112-uIH4lb5aykJTK516SDQhwFcFUMEr7wxr-0-5ccb84fdee22528cc7885bc1ff5864e4)
编译运行结果如图2-53所示。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt002_72.jpg?sign=1739137112-9ZGJJ0WfnAZjVQJGUGPIl5hPTfUrOoQr-0-ec121e0200d03b4e448773222a177634)
图2-53 编译运行结果
可以发现结果中出现了乱码,没有出现“你好”。原因是Notepad++软件默认的编码是UTF-8,而当前中文版Windows 10操作系统默认的编码是GBK,错误结果是编码不一致导致的(关于编码问题,大家可以看3.4.3节)。当前命令行编码GBK如图2-54所示。AtGuiGU.java源文件修改之前的UTF-8编码如图2-55所示。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt002_73.jpg?sign=1739137112-nQcnz1DuSz6g0MdPy0w4K7lb6cZj91sT-0-971d4e0d3d282e2b57441d5dac2c66fc)
图2-54 当前命令行编码GBK
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt002_74.jpg?sign=1739137112-Vbu9QoP1gGgwyXhDEi3BJusyLnA7mm0E-0-6f36f4a2ebb97d8260efd0e2a124a7e2)
图2-55 AtGuiGU.java源文件修改之前的UTF-8编码
那么,应怎么解决编码不一致的问题呢?
对于当前已经编写好的Java源文件(如AtGuiGu.java),如果要修改编码,则选择“编码”→“转为ANSI编码”,AtGuiGu.java源文件修改后的ANSI编码如图2-56所示。修改完编码后,要保存,并且重新编译和运行,再次编译和运行的效果如图2-57所示。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt002_75.jpg?sign=1739137112-4glYsROqw9c3zc379iYEy596B3mnpYEx-0-df859a6293bfd5a69cedab189bd71f80)
图2-56 AtGuiGu.java源文件修改后的ANSI编码
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt002_76.jpg?sign=1739137112-JLePF7wVFFlVcwTVETXveu5BXRVUZtOF-0-cf1f3a399e10c86f0176debf48115e0f)
图2-57 再次编译和运行的效果
为了使以后新建的Java源文件的默认编码都是ANSI编码,可以通过“菜单设置”→“首选项”→“新建”→“编码”→“ANSI”进行设置。修改后新建文档的默认编码为ANSI编码,如图2-58所示。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt002_77.jpg?sign=1739137112-JvLI0W5G4Amq30TJR0P3kvkOtjg4ECdR-0-5ff59aa8935b56722a5344a1a54a7bd3)
图2-58 修改后新建文档的默认编码为ANSI编码