public void testCharToUTF8() {
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
/**
* 用Java程序入文件中以UTF-8编码方式存入字符时,是不会在文件头加上编码标志的。
* 但如果在windows中用记事本创建一个文件,并以UTF-8保存时,会在文件开开头写
* 入文件编码标志 EF BB BF 三个字节长度的编码标志,这时如果使用字节流方式读取
* 有编码标示的UTF-8文件时,会有问题,此时只能以字节流读出后去掉前三个字节内容
*/
public void testUTF8File() {
try {
//--字节流写
byte[] encodeArr = String.valueOf(chineseChar).getBytes("UTF-8");
OutputStream o = new FileOutputStream("e:/utf8.txt");
o.write(encodeArr);
encodeArr = String.valueOf(englishChar).getBytes("UTF-8");
o.write(encodeArr);
o.close();
//--读
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream("e:/utf8.txt"), "UTF-8"));
//因为存储方法错误,所以导致读取时出现乱码,其实问号就是文件编码标志
System.out.println(br.readLine());//中?a
br.close();
责任编辑:小草