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

孙鑫老师java字符集示例
最近在看孙鑫老师的java视频教程,输入中文字符时把字符集设置为"ISO-8859-1",输出的时候编码成"ISO-8859-1"再按"GBK"解码,在我机器上执行结果不正确,各位帮我看看为什么。
class CharsetTest
{
public static void main(String []args) throws Exception
{
Properties p=System.getProperties();
p.put("file.encoding","ISO-8859-1");
byte [] bdata=new byte[100];
int i=0;
int data;
while((data=System.in.read())!='q')
{
bdata[i]=(byte)data;
i++;
}
String str=new String(bdata,0,i);
System.out.println(str);
String strGBK=new String(str.getBytes("ISO-8859-1"),"GBK");
System.out.println(strGBK);
System.out.println(p.getProperty("file.encoding"));
}
}
输入"维新q"运行结果为:
维新
??
ISO-8859-1。
孙鑫老师的运行结果为:
??
维新
ISO-8859-1。

------解决方案--------------------
帮你顶一下!!!
------解决方案--------------------
很显然Properties p=System.getProperties();
p.put("file.encoding","ISO-8859-1");
这句话没有改变你的系统编码,我也试过了,效果和你一样,简单的这么一句话对于有些操作系统是改变不了编码的
你可以看原来你系统的编码应该不是"ISO-8859-1"


------解决方案--------------------
在这里我也迷惑了很长的时间,什么时候在回顾一下,
------解决方案--------------------
这个东西jdk每个版本都做了不同的处理,越来越智能,你用低版本的jdk版本是可以的。