编程语言

img java2000_net

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

发表于2008/10/3 15:45:00  1230人阅读

原文地址: 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。
阅读全文
0 0

相关文章推荐

img
取 消
img