国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
JSP HTML JAVASCRIPT 中文亂碼 解決方案 大全
JSP的中文字符一直是各位初學者首先要解決的問題,下面進行了總結,也給出了解決辦法。

C4.1 HTML中文編碼轉換

 在JSP文件中的靜態(tài)文字顯示亂碼,則需要在<head></head>之間增加中文設置代碼,如清單附C-5所示。

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

 charset指定UTF-8字符集,當然也可以指定其他支持中文的編碼,如GBK和GB2312。但是整個Web應用中一定要統(tǒng)一一種編碼,本書推薦統(tǒng)一為UTF-8編碼。

C4.2 JSP中文編碼轉換

  針對Tomcat下動態(tài)內(nèi)容的中文亂碼問題,有以下幾個解決辦法:

1. 在每個JSP文件的開頭增加如下代碼:

<%@ page language="java" contentType="text/html;charset=UTF-8"

  pageEncoding="UTF-8"%>

2. 設置編碼參數(shù):

request.setCharacterEncoding("UTF-8");

3. 使用編碼過濾器。創(chuàng)建過濾器類SetCharacterEncoding,源碼如清單附C-5所示。

清單附C-5 SetCharacterEncoding.java

package chapc;

 

import java.io.IOException;

 

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

 

public class SetCharacterEncoding implements Filter {

 

  @Override

  public void destroy() {  

  }

 

  @Override

  public void doFilter(ServletRequest request, ServletResponseresponse,

  FilterChain chain) throws IOException, ServletException{

  //設置字符編碼

  request.setCharacterEncoding("UTF-8");

  //將控制傳到下一個過濾器,如果沒有過濾器則傳到被調(diào)用者

  chain.doFilter(request, response);

  }

 

  @Override

  public void init(FilterConfig arg0) throws ServletException{

  }

}

 過濾器類還需要在web.xml中進行配置,設定要過濾哪些請求。過濾器在web.xml中的配置如清單附C-6所示。

清單附C-6 web.xml片段

<filter>

 <filter-name>SetCharacterEncoding</filter-name>

 <filter-class>chapc.SetCharacterEncoding</filter-class>

</filter>

<filter-mapping>

 <filter-name>SetCharacterEncoding</filter-name>

 <url-pattern>/*</url-pattern>

</filter-mapping>

 方法1、方法2和方法3經(jīng)常需要使用,但它們一般不是獨立使用,而是兩兩結合:1和2結合;1和3結合。附錄A中的示例用到了1和2的結合。第四章Hibernate中的信息發(fā)布系統(tǒng)用到了1和3的結合。

4.修改Tomcat根目錄中conf子目錄下的server.xml文件,在中加入URIEncoding="UTF-8",如清單附C-7所示。

清單附C-7 server.xml片段

<Connector connectionTimeout="20000"

  port="8080"

  protocol="HTTP/1.1"

  redirectPort="8443"

  URIEncoding="UTF-8"/>

 該方法用來解決瀏覽器地址欄中的傳遞中文參數(shù)導致的亂碼問題。瀏覽器地址欄傳遞參數(shù)(URL傳參)一般表現(xiàn)為三種情況:form表單的get方法提交、超鏈接傳參和response傳參。

Ø form表單提交方法是get:

<form action="registerProcess.jsp"method="get">

Ø 在超鏈接中傳遞中文參數(shù):

<ahref="a.jsp?p=中文參數(shù)">超鏈接傳遞中文參數(shù)測試</a>

5. 如果是調(diào)用response.sendRedirect傳遞中文參數(shù)產(chǎn)生的亂碼,如:

response.sendRedirect("a.jsp?p=中文參數(shù)");

請修改成如:

<% //引入URLEncoder %>

<%@pageimport="java.net.URLEncoder"%>

<%

String p = "中文參數(shù)";

//對中文參數(shù)編碼

p = URLEncoder.encode(p, "UTF-8");

response.sendRedirect("a.jsp?p=" + p);

%>

以解決亂碼問題。

  如果方法4還不能解決某些超鏈接傳參亂碼問題,請使用方法5,如下:

<%@pageimport="java.net.URLEncoder"%>

<%

String p = "中文參數(shù)";

//對中文參數(shù)編碼

p = URLEncoder.encode(p, "UTF-8");

%>

<a href="a.jsp?p=<%=p%>">超鏈接傳遞中文參數(shù)測試</a>

6. JavaScript中如果出現(xiàn)URL傳參亂碼問題,如:

open("a.jsp?p=中文參數(shù)");

請修改成:

<script type="text/javascript">

function openWindow()

{

  var url = "a.jsp?p=中文參數(shù)"; 

  url = encodeURI(url);

  open(url);

}

</script>

<input type="button" value="JavaScript中文參數(shù)"

  onclick="openWindow();">

以解決亂碼問題。

JavaScript中的open方法打開瀏覽器窗口,傳遞參數(shù),其本質(zhì)也是URL傳參。一般方法4就可以很好的解決中文參數(shù)亂碼問題。如果方法4不生效,才考慮方法六。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JS中頁面跳轉,傳值包含中文時亂碼解決方案
JSP中文亂碼問題終極解決方案【面試+工作】
JSP中文亂碼解決方案-Tomcat5.0版
jsp編碼問題_生活
JSP編碼以及亂碼解決總結
JSP亂碼雜談
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服