关于中文乱码问题

一、servlet

       1)将接收的内容(参数)进行编码

       request.setCharacterEncodeing(String charset);

 

       2)将要输出的转发的内容进行编码

       response.setContextType("text/html;charset=utf-8");

 

二、jsp

       <%@page language=“java” import="java.util.*"  pageEncoding="utf-8"%>

 

三、Js

       1.传参页面
       Javascript
代码:

       <scripttype=”text/javascript”>// <![CDATA[
       function send(){
       var url = "test01.html";
       var userName =$("#userName").html();
       window.open(encodeURI(url +"?userName=" + userName)); }
       // ]]>
       </script>

       2. 接收参数页面:test02.html

       <script>
       var urlinfo = window.location.href;//
獲取url
       var userName =urlinfo.split(“?”)[1].split(“=”)[1];//
拆分url得到”=”後面的參數
       $(“#userName”).html(decodeURI(userName));
       </script>
      
二:如何获取Url“后,“=”的参数值:

       A.首先用window.location.href获取到全部url值。
       B.
split截取“?”后的全部
       C.split(“?”)
后面的[1]内数字,默认从0开始计算

 

       escapeunescapeencodeURIencodeURIComponent区别:

       1.传递参数时候使用,encodeURIComponent否则url中很容易被”#””&”         敏感符号隔断。
       2.url
跳转时候使用,编码用encodeURI,解码用decodeURI
       3.escape()
只是为0-255以外 ASCII字符做转换工作,转换成的 %u**** 这样的         码,如果要用更多的字符如 UTF-8字符库就一定要用 encodeURIComponent()          encodeURI()转换才可以成 %nn%nn 这的码才可以,其它情况下escape       encodeURIen    codeURIComponent编码结果相同,所以为了全球的统一化进程,在              encodeURICom       ponent() encodeURI() 代替 escape() 使用吧!

四、struts

       设置常量:<contanst name=“struts.i18n.ecording”value="utf-8">

五、spring

       在您通过表单向服务器提交数据时,一个经典的问题就是中文乱码问题。虽然我们所有       JSP 文件和页面编码格式都采用 UTF-8,但这个问题还是会出现。解决的办法很             简单,我们只需要在 web.xml中配置一个 Spring 的编码转换过滤器就可以了.

       使用在非struts2框架开发:

  org.springframework.web.filter.CharacterEncodingFilter

       <filter>

     <filter-name>characterEncodingFilter</filter-name>

     <filter-class>

      org.springframework.web.filter.CharacterEncodingFilter

     </filter-class>

     <init-param>

     <param-name>encoding</param-name>

     <param-value>UTF-8</param-value>

     </init-param>

       <init-param>

       <param-name>forceEncoding</param-name>

      <param-value>true</param-value>

       </init-param>

       </filter>

 

       <filter-mapping>

       <filter-name>characterEncodingFilter</filter-name>

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

       </filter-mapping>

六、html

       表单中的数据会按照当前页面来进行编码。

       <metahttp-equiv="content-type" content="text/html;charset=utf-8;">

       模拟消息头content-type,让浏览器以utf-8编码打开页面。

       确保页面将表单用指定的字符编码进行编码。

 

七、cookie

       cookie的值只能是ascii字符,如果是中文,需要将中文转换成ascii字符形式。

       可以使用URLEncoder.encode()方法和URLDecoder.decode()方法来进行这种转换。

 

                     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值