Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26278651
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: LINUX

2010-06-07 14:06:06

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乱码均可以通过此方法来操作。

 

阅读(1056) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~