日期:2014-05-20  浏览次数:20706 次

设置的编码方式不其作用。
[code=Java][/code]
package com.charcode;
public class CharCode {
 /**
  * @param args
  */
 public static void main(String[] args)throws Exception {
  // TODO Auto-generated method stub
  System.setProperty("file.encoding", "iso8859-1");//设置编码方式“代码第一行”
  System.getProperties().list(System.out);
  String strChina = "中国";
  System.out.println("输出其Unicode");
  for(int i=0;i<strChina.length();i++){
  System.out.println(Integer.toHexString((int)strChina.charAt(i)));
  }
  System.out.println("输出设定后字符对应的16进制");
  byte[] b =strChina.getBytes();
  for(int i=0;i<b.length;i++){
  System.out.println(Integer.toHexString((int)b[i]));
  }
  
  System.out.println("输出");
  for(int i=0;i<b.length;i++){
  System.out.write(b[i]);
  }
  System.out.println();
 }
}
请问:为什么System.setProperty("file.encoding", "iso8859-1");//设置编码方式“代码第一行”
注释前后都一样,这句没有其作用?大家帮看一下,谢谢。

------解决方案--------------------
我刚碰到过这个问题,貌似file.encoding在代码里设置是不起作用的。

在启动虚拟机的时候创建:java -Dfile.encoding=iso8859-1 com.charcode.CharCode