java字符编码问题....
public   class   CharCode 
 { 
          public   static   void   main(String[]   args)throws   Exception 
          { 
                   System.setProperty( "file.encoding ", "iso8859-1 ");      //(1)   
                   System.getProperties().list(System.out);   
                   String   strChina   =    "中国 "; 
                   for(int   i   =   0;i <strChina.length();i++) 
                   { 
                            System.out.println(Integer.toHexString((int)strChina.charAt(i))); 
                   }   
                   byte[]   buf   =   strChina.getBytes();      //(2) 
                   for(int   i=0;i <buf.length;i++) 
                   { 
                            System.out.println(Integer.toHexString(buf[i]));      //(3) 
                   }                     
                   for(int   i=0;i <buf.length;i++) 
                   { 
                            System.out.write(buf[i]);         //(4) 
                   } 
                   System.out.println(); 
          } 
 }     
 ----------------------------------- 
 (1)确实已经把java虚拟机环境属性改为iso8859-1了..(3)和(4)却是以GBK的字符编码输出...   
 把(2)改为byte[]   buf   =   strChina.getBytes( "iso8859-1 ");   才按照iso8859-1的字符编码输出....   
 为什么(1)没起作用?   
 我是新人...没有分....请大家多多帮忙....
------解决方案--------------------up,我跟你打印出来的一样   
 4e2d 
 56fd 
 ffffffd6 
 ffffffd0 
 ffffffb9 
 fffffffa 
 中国
------解决方案--------------------sun.jnu.encoding=GBK才是他默认的编码方式吧... 
------解决方案--------------------我没有试,但是一眼看到一个小错误,iso-8859-1
------解决方案--------------------是不是每个都需要改啊
------解决方案--------------------照你门说的去改了..输出结果还是 
 4e2d 
 56fd 
 ffffffd6 
 ffffffd0 
 ffffffb9 
 fffffffa 
 中国   
 正确的输出结果应该是 
 4e2d 
 56fd 
 3f 
 3f 
 ?? 
 中国
------解决方案--------------------上面的(2)、(3)、(4)都是按操作系统缺省编码解码的 
 操作系统缺省编码可以这样取得: 
 String DefaultOSencoding=System.getProperty( "file.encoding "); 
 但是改变file.encoding并不能改变操作系统缺省编码(控制面板==> ;区域设置 设置实现)的, 
 file.encoding是供jvm编译时用的,所以这里改变file.encoding基本上是无用的.   
 上面的整个流程是Source--> javac--> javaIO,其中Source--> javac与file.encoding有直接关系. 
 JavaIO与操作系统缺省编码有直接联系(人为指定编码、解码除外),另外就是java中的字符集是UNICODE.
------解决方案--------------------好像在jdk1.4.2之前是可以的,1.4.2及以后就不行了