0 0

MyEclipse乱码,该乱码的时候不乱,该正确的时候乱码5

Myeclipse中workspace编码格式为UTF-8
代码1:a.txt的编码也是UTF-8
FileReader fr = new FileReader("src/a.txt");

char[] buffer = new char[10];

int len = fr.read(buffer);

System.out.println(new String(buffer,0,len));
结果:txt文件中的汉字并没有出现乱码
代码2:
public static void main(String[] args) throws UnsupportedEncodingException {

String str = "abcd你好啊";

byte[] bytes = str.getBytes("gb2312");

int len = 7;
decode(bytes,len);
}

private static void decode(byte[] bytes, int len) {

int count = 0;
for(int i=0; i<len; i++){
if(bytes[i]<0)
count++;
}
if(count%2==1)
len--;
String str = new String(bytes,0,len);

System.out.println(str);
}
}
结果应该是abcd你,但是运行结果却是
请各位看看是不是哪里设置出了问题

2013年6月25日 12:58

2个答案 按时间排序 按投票排序

0 0

代码1:
用FileReader在utf-8默认字符集下读写utf-8的文件不出现乱码应该是正常的吧;
代码2
java api:
public String(byte[] bytes)
构造一个新的 String,方法是使用平台的默认字符集解码字节的指定数组。
byte[] bytes = str.getBytes("gb2312");
String str = new String(bytes,0,len);
你用了gb2312装换成编码为字节,然后用utf-8默认字符集解码字节应该出现乱码。



2013年6月26日 13:59
0 0

你看一下你下面这个类的文件编码格式是什么?如果你类文件设置的是utf-8或者其他格式,然后你这边又转化为gb2312 输出来肯定是乱码的

2013年6月25日 15:47

相关推荐

Global site tag (gtag.js) - Google Analytics