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>
到此,问题终于解决
阅读更多
- Java Web中使用JSPSmartUpload控件实现文件的上传和下载(解决了中文乱码问题)(JSP页面采用GBK编码)
- Java Web中使用JSPSmartUpload控件实现文件的上传和下载(解决了中文乱码问题)(JSP页面采用GBK编码)
- JSP页面出现的中文乱码显示问题
- 解决JSP引入JS文件后,JS文件中字符在页面上显示为乱码问题
- JSP 中js文件中中文显示成乱码的问题
- 关于jsp文件在页面上显示乱码的问题
- jsp页面显示及数据库中文乱码问题解决方法
- 解决jsp页面读取XXX.properties文件显示文乱码的问题
- 浅谈jsp页面中调用js文件的中文乱码问题
- JSP中乱码问题解决(一、JSP页面显示乱码,二、表单提交中文时出现乱码,三、数据库连接出现乱码,四、数据库的显示乱码 )
- jsp页面url参数传中文乱码问题
- jsp实现文件下载与中文文件名乱码问题解决
- 解决页面中文显示乱码问题
- js文件中的“中文”在页面上显示乱码
- JSP实现文件下载同时解决中文乱码问题
- 在linux服务器上生成jsp文件,中文变乱码的问题
- 解决jsp中action接受页面传过来的中文乱码问题
- 处理JSP中文跨页面间传参乱码的问题有两种方法实现方法(每个搞JSP的最常遇到的问题之一) 实例版:)
- jSP程序页面中下载打开Word,Excel,powerpoint文件乱码的问题
- 【ZT】如何解决JSP页面、JDBC显示乱码问题