读书人

关于乱码的一些有关问题

发布时间: 2012-11-21 08:23:25 作者: rapoo

关于乱码的一些问题

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.nio.CharBuffer;

import com.sun.org.apache.bcel.internal.generic.NEW;


public class TestCharset {

?/**
? * @param args
? * @throws Exception
? * 原理: 输入输出的都要进行转码。
? */
?public static void main(String[] args) throws Exception {
??????? //向C:/ss.txt文件里面写东西? 默认操作系统的编码CBK
???? // PrintStream ps=new PrintStream("C:/ss.txt");
??
??// 输出流输出东西必须要求输出必须制定一种编码。 没有的话,就是操作系统的编码CBK
//???? PrintStream ps=new PrintStream("C:/ss.txt","utf-8");?
//???? System.setOut(ps);
//??System.out.println("潘鹤");
//??ps.close();
?

??
? ??// 写到文件里面去?? 也要制定一种编码?? "utf-8"?
//??FileOutputStream? fos= new FileOutputStream("C:/ss.txt");
//??fos.write("中国".getBytes("utf-8"));
//????
??
??// 用底层的流去写数据,写到文件里面? 要制定编码 "utf-8"
???? FileOutputStream fos1= new FileOutputStream("C:/ss.txt");
??????? OutputStreamWriter? os= new OutputStreamWriter(fos1,"utf-8");
??????? os.write("中国");
??????? os.close();
???????
????????
????? // 从文件里面读取??? 控制台:乱码??
??????? // 原理:我们从文件里面读取的写的时候是UTF-8的码,而读取出来的时候是 操作系统的码
//??FileReader fr=new FileReader("C:/ss.txt");
//??char[] cbuf=new char[1024];
//??int len=fr.read(cbuf);
//??System.out.println(new String(cbuf,0,len));
??
??//从文件里面读取??? 控制台: 中国
??????? // 我们在输出的时候也要制定是以哪种编码方式进行输出 "utf-8" ,所以不好乱码
??FileInputStream? fis= new FileInputStream("C:/ss.txt");
??InputStreamReader? is=new InputStreamReader(fis,"utf-8");
??char[] cbuf1=new char[1024];
??int len1=is.read(cbuf1);
??System.out.println(new String(cbuf1,0,len1));
??
??????
?}

}

读书人网 >编程

热点推荐