当前位置:编程学习 > JAVA >>

乱码问题——该乱码的时候不乱,该正确的时候乱码

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你,但是运行结果却是
请各位看看是不是哪里设置出了问题 乱码 Myeclipse 编码 UTF-8 设置 --------------------编程问答-------------------- 统一使用UTF-8就不会乱码了 --------------------编程问答-------------------- 解码时new String(bytes,0,len);没传字节编码方式 --------------------编程问答-------------------- String str = new String(bytes, 0, len, "gb2312"); --------------------编程问答--------------------
引用
String str = "abcd你好啊";
byte[] bytes = str.getBytes("gb2312");
int len = 7;

1个中文长两个字节,这里len值不够大,将中文截断了。直接用bytes.length就行
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,