For
exapmle:
Test.java
public
class
Test{
public static void main(String[ ] args){
System.out.println("Hello World! 这位是王疯子!");
} }
在linux终端进行编译时,出现以下乱码:
# javac
Test.java
Test.java: 5: warning: unmappable character for encoding
ASCII
System.out.println("Hello World! ?????????!");
...............................
12 warning.
# java Test
Hello World! ??????????!
Analysis:
1、这种是系统的环境变量设置问题:修改/etc/profile文件里的语言问题。
不能解决问题。
2、怀疑该文件Test.java的编码问题
3、怀疑操作系统语言问题
Solutions:
第一种:
在进行javac编译时,加上编码:
# javac -encoding gbk
Test.java
# 编译成功
但是,执行 # java Test ,产生的结果还是乱码: Hello World!
?????????!
第二种:
linux
操作系统登陆时,以 USA English为默认语言登陆。
然后打开新的终端来执行javac 和java。执行成功。
# javac
Test.java
# java Test
Hello World! 这位是王疯子!
PS:
类似的linux乱码均可以通过此方法来操作。