[求助]关于更改默认编码方式
public class CharCode2{public static void main(String args[])throws Exception{
System.getProperties().put("file.encoding","iso8859-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();//按默认编码方式获取字节
for(int i=0;i<buf.length;i++){
System.out.println(Integer.toHexString(buf[i]));
}
System.out.println(strChina);
for(int i=0;i<buf.length;i++){
System.out.write(buf[i]);//本该出现乱码,却没有
}
System.out.println();
}
}
照书上的例子最后‘中国’两个字应该是乱码,我的显示却正常,为什么
----------------解决方案--------------------------------------------------------
byte[] buf=strChina.getBytes();//此处用getBytes("ISO-8859-1")就是乱码了。。。
具体为什么不知道。。。是否两个getBytes有不同。。。
或者getBytes()是以系统实际的编码类型来转换。。。前面的改变编码类型没有改变系统实际编码类型。。。所以对getBytes()没有影响???
----------------解决方案--------------------------------------------------------
System.getProperties().put("file.encoding","iso8859-1");//更改默认编码方式
iso8859-1是中文编码格式
转换成别的格式 可能就是乱码
----------------解决方案--------------------------------------------------------