两种方式inlucde文本文件时乱码的解决方案

原创 2008年10月03日 15:45:00
原文地址: http://www.java2000.net/p10631

我们常用的include有2个方式。


  1. <jsp:include page="text.txt"/>
  2. <%@include file="text.txt"%>
text.txt 注意,此文本文件自身的编码已经是UTF-8,否则我们别谈了
我爱北京Text

如果我们包含中文的文本,则页面显示乱码。理由是在系统读取文本文件是,并没有按照我们希望的编码方式,结果读取进来的数据和当前页面的编码不同,出现了乱码。

我这里提供2个解决方案
方案1:修改文件名为.jsp
然后在文件头加上编码的方式,记得一定好和调用方的相同
text.jsp
  1. <%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. 我爱北京JSP
这样我们的include就可以正确的识别了。

方案2:修改web.xml,增加如下部分
  1.  <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app
  3.   id="WebApp_ID"
  4.   version="2.4"
  5.   xmlns="http://java.sun.com/xml/ns/j2ee"
  6.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7.   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  8.   <display-name>www.java2000.net</display-name>
  9.   <jsp-config>
  10.     <jsp-property-group>
  11.       <!-- JSP -->
  12.       <description>针对.JSP的配置.</description>
  13.       <display-name>JSPConfiguration</display-name>
  14.       <url-pattern>*.jsp</url-pattern>
  15.       <el-ignored>true</el-ignored>
  16.       <page-encoding>UTF-8</page-encoding>
  17.       <scripting-invalid>false</scripting-invalid>
  18.       <include-prelude></include-prelude>
  19.       <include-coda></include-coda>
  20.       <!-- txt -->
  21.       <description>针对.txt的配置.</description>
  22.       <display-name>JSPConfiguration</display-name>
  23.       <url-pattern>*.txt</url-pattern>
  24.       <el-ignored>true</el-ignored>
  25.       <page-encoding>UTF-8</page-encoding>
  26.       <scripting-invalid>false</scripting-invalid>
  27.       <include-prelude></include-prelude>
  28.       <include-coda></include-coda>
  29.       <!-- html -->
  30.       <description>针对.html的配置.</description>
  31.       <display-name>JSPConfiguration</display-name>
  32.       <url-pattern>*.html</url-pattern>
  33.       <el-ignored>true</el-ignored>
  34.       <page-encoding>UTF-8</page-encoding>
  35.       <scripting-invalid>false</scripting-invalid>
  36.       <include-prelude></include-prelude>
  37.       <include-coda></include-coda>
  38.     </jsp-property-group>
  39.   </jsp-config>
  40.   <!-- 你的其它配置参数 -->
  41. </web-app>
如果你的文件多,建议用第二个方式。

注意:
如果你采用 .html格式,需要在文件里面加上
  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  2. 我爱北京HTML
否则还是会出现错误,因为html是正常的网页格式,不指定编码竟然还是会出问题。
如果你不加,在使用 <jsp:include时可能正常,但 <%@include 时是乱码。

真的好乱。我都有点搞糊涂了。呵呵呵!

附上我测试用的几个文件。
还有

<jsp-config>标签使用详解

<jsp-config> 包括<taglib> 和<jsp-property-group> 两个子元素。

其中<taglib>元素在JSP 1.2时就已经存在;而<jsp-property-group>是JSP 2.0 新增的元素。
<jsp-property-group>元素主要有八个子元素,它们分别为:

1.<description>:设定的说明;
2.<display-name>:设定名称;
3.<url-pattern>:设定值所影响的范围,如:/CH2 或 /*.jsp;
4.<el-ignored>:若为true,表示不支持EL 语法;
5.<scripting-invalid>:若为true,表示不支持<% scripting %>语法;
6.<page-encoding>:设定JSP 网页的编码;
7.<include-divlude>:设置JSP 网页的抬头,扩展名为.jspf;
8.<include-coda>:设置JSP 网页的结尾,扩展名为.jspf。
版权声明:本文为博主原创文章,未经博主允许不得转载。

函数调用时两种传参方式

函数在调用的时候有两种传参方式:一种是值传递,另一种是引用传递。 值传递:传递的是变量本身的值。一般程序中的值传递都是基本数据类型,如:int、char、double、float、long等等。 ...
  • qq378718095
  • qq378718095
  • 2017年10月18日 20:12
  • 60

windows txt文件linux下乱码解决办法

windows txt文件linux下乱码解决办法
  • vantian
  • vantian
  • 2017年08月03日 13:40
  • 246

函数调用时基本的参数传递方式有传值与传地址两种

2009年上半年软件设计师真题 函数调用时基本的参数传递方式有传值与传地址两种。 传值方式讲解 1、在传值方式下是将实参的值传递给形参2、实参可以是表达式或常量,也可以是变量或数组元素 3、这种信息传...
  • meilidongren
  • meilidongren
  • 2011年02月15日 17:48
  • 512

struts2下载文件时两种实现方式

struts2下载文件时有,两种实现方式: 1.将文件源卸载jsp页面中直接下载:   href=“文件名” 2.在action中添加filename属性,在struts配置文件中为filename赋...
  • Scorpius8928
  • Scorpius8928
  • 2014年07月04日 14:11
  • 319

乱码问题之文件,文本文件以及编码

在前面的字符集编码系列中,已经探讨了几大主要的字符集编码。在此基础之上,这里将进一步探讨编码的应用及乱码的根源,我们先从基本的文件说起。 文件 文件(内容)就是字节序列。文本文件也是文件,所以它也是...
  • WZD2012
  • WZD2012
  • 2017年04月19日 10:43
  • 471

拷贝文本文件的两种方式

/* 将C盘的一个文本文件复制到D盘。 复制原理: 其实就是将C盘下的文件数据存储到D盘的一个文件中。 步骤: 1、在D盘创建一个文件,用于存储C盘文件中的数据。 2、定义读取流和C盘...
  • u012369373
  • u012369373
  • 2015年11月25日 20:17
  • 466

多线程实现的两种方式及其区别

继承Threadpublic class Demo2_Thread { public static void main(String[] args) { MyThread mt ...
  • StriverLi
  • StriverLi
  • 2017年02月26日 21:07
  • 1639

C# 读写文本文件乱码解决方案

在使用C#对文本文件读取的时候,如果其中包含了中文,经常会出现乱码。一般解决是在StreamReader加一个编码,我使用的是Encoding.UTF8,一般情况下使用这个参数就可以。但是,在这次我使...
  • onlyzkg
  • onlyzkg
  • 2014年10月08日 21:28
  • 383

Spring中依赖注入的两种方式的区别

1:Spring中依赖注入的两种方式:  (1):通过 setter 方法注入:                 其中,name属性的取值依setter方法名而定,要求这个类里面这...
  • StarskyBoy
  • StarskyBoy
  • 2016年08月22日 11:44
  • 2705

Map集合的两种遍历方式

import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; pu...
  • Geek_ymv
  • Geek_ymv
  • 2014年03月05日 20:34
  • 4137
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:两种方式inlucde文本文件时乱码的解决方案
举报原因:
原因补充:

(最多只允许输入30个字)