国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

jsp通過include指令引入html亂碼的解決方法

2024-04-27 15:18:56
字體:
來源:轉載
供稿:網友

jsp中使用<%@include file="in.html" %>導入html頁面時,如果html頁面里有中文,就會產生亂碼。檢查jsp文件和html文件的編碼,編碼一致,都是統一使用的utf-8,檢查生成的Servlet類文件,發現里面直接就亂碼了。

jsp頁面內容:

[html] view plain copy 在CODE上查看代碼片<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  <title>測試JSP的include指令</title>  </head>  <body>  <%@include file="in.html" %><br/>  <%@include file="in1.jsp"%><br/>  <%@include file="in2.html" %>  </body>  </html>  in.html文件內容:

[html] view%20plain copy <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  <title></title>  </head>  <body>  我是in.html文件的內容  </body>  </html>  生成的Servlet內容:

[java] view%20plain copy out.write("<!DOCTYPE html PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/" /"http://www.w3.org/TR/html4/loose.dtd/">/r/n");  out.write("<html>/r/n");  out.write("<head>/r/n");  out.write("<meta http-equiv=/"Content-Type/" content=/"text/html; charset=UTF-8/">/r/n");  out.write("<title></title>/r/n");  out.write("</head>/r/n");  out.write("<body>/r/n");  out.write("?ˆ‘?˜ˉin.html?–‡????š„?†…??1/r/n");  out.write("</body>/r/n");  out.write("</html>/r/n");  

通過上面生成的Servlet內容可以看出,在將jsp文件編譯成Java類這一過程就出現了亂碼,問題肯定是編碼一致的,而設置編碼的有兩個:pageEncoding和contentType,這兩個屬性的區別如下:

pageEncoding是jsp文件本身的編碼,是指定web容器將jsp編譯成java文件時采用什么編碼讀取jsp文件。

contentType的charset設置的編碼是指服務器發送給客戶端時的內容編碼。

而客戶端訪問一個jsp文件要經過如下三個階段:

1、(第一次訪問時)web容器將jsp編譯成java文件,這個階段編譯器會根據pageEncoding設置的編碼讀取jsp文件,翻譯成統一的utf-8的Servlet類,如果pageEncoding設置錯誤或未設置,編譯出來的java文件就會出現中文亂碼。

2、由javac將java<%@page pageEncoding="UTF-8"%>  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  <title></title>  </head>  <body>  我是in.html文件的內容  </body>  </html>  

方法二:在web.xml里統一配置pageEncoding的編碼,在web-app標簽里添加如下配置:

[html] view%20plain copy <jsp-config>      <jsp-派生到我的代碼片org.apache.jasper.JasperException: /in.html (line: 1, column: 2) Page-encoding specified in jsp-property-group (UTF-8) is different from that specified in page directive (GBK)  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临夏市| 峡江县| 汕头市| 阳东县| 承德县| 莱西市| 观塘区| 海淀区| 黑河市| 齐河县| 紫金县| 东乡县| 合江县| 洪湖市| 林州市| 淮安市| 集安市| 柳林县| 广汉市| 马公市| 新安县| 浙江省| 新野县| 阜城县| 双峰县| 汉沽区| 黄梅县| 银川市| 通江县| 兰坪| 清徐县| 甘肃省| 谢通门县| 邢台县| 拜城县| 齐河县| 保靖县| 远安县| 灵川县| 蒲江县| 潜江市|