jsp页面显示文件内容有中文乱码问题 博客分类: javajsp jsp中文乱码文件读取
一、首先需要了解FileReader与InputStreamReader的区别:
1、FileReader:读取文件过程中,继承了InputStreamReader,但是并没有实现父类中带字符集参数的构造函数,所以只能按照系统默认的字符集(GBK)来解码。
比如页面的编码方式为utf-8,解码过程为utf-8->GBK->utf-8,该过程会出现损失,造成不能还原最初的字符。
2、InputStreamReader:有实现父类中带字符集参数的构造函数
二、具体实现演示
1、FileReader实现:
代码:
FileReader in = new FileReader(file);
BufferedReader br= new BufferedReader(in);
StringBuffer stringbuffer = new StringBuffer();
String s = null;
while ((s = br.readLine()) != null) {
stringbuffer.append("\n" + s);
}
String temp = new String(stringbuffer);
执行结果:
<a href="selectdir.jsp">閲嶆柊閫夋嫨鏂囦欢鐨勭洰褰�</a>
2、想到的第一种方案:(字符转码,结果解决失败)
在代码1中加转码:temp = new String(temp.getBytes("ISO-8859-1"),"utf-8");
执行结果:
<a href="selectdir.jsp">??????????????</a>
3、第二种方案:(将FileReader换成InputStreamReader)
代码:
BufferedReader br= new BufferedReader(new InputStreamReader(new FileInputStream(file),"utf-8"));
StringBuffer stringbuffer = new StringBuffer();
String s = null;
while ((s = br.readLine()) != null) {
stringbuffer.append("\n" + s);
}
String temp = new String(stringbuffer);
执行结果:
<a href="selectdir.jsp">重新选择文件的目录</a>
到此,问题终于解决
下一篇: /etc/my.cnf 详细配置