首页 > 代码库 > 中文乱码的总结
中文乱码的总结
一、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代码:
<script type=”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开始计算
escape,unescape,encodeURI,encodeURIComponent区别:
1.传递参数时候使用,encodeURIComponent否则url中很容易被”#”,”?”,”&”等 敏感符号隔断。
2.url跳转时候使用,编码用encodeURI,解码用decodeURI。
在您通过表单向服务器提交数据时,一个经典的问题就是中文乱码问题。虽然我们所有 的 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>
表单中的数据会按照当前页面来进行编码。
<meta http-equiv="content-type" content="text/html;charset=utf-8;">
模拟消息头content-type,让浏览器以utf-8编码打开页面。
确保页面将表单用指定的字符编码进行编码。
七、cookie
cookie的值只能是ASCII字符,如果是中文,需要将中文转换成ASCII字符形式。
可以使用URLEncoder.encode()方法和URLDecoder.decode()方法来进行这种转换。
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代码:
<script type=”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开始计算
escape,unescape,encodeURI,encodeURIComponent区别:
1.传递参数时候使用,encodeURIComponent否则url中很容易被”#”,”?”,”&”等 敏感符号隔断。
2.url跳转时候使用,编码用encodeURI,解码用decodeURI。
3.escape() 只是为0-255以外 ASCII字符 做转换工作,转换成的 %u**** 这样的 码, 如果要用更多的字符如 UTF-8字符库 就一定要用 encodeURIComponent() 或 encodeURI() 转换才可以成 %nn%nn 这的码才可以,其它情况下escape, encodeURI,en codeURIComponent编码结果相同,所以为了全球的统一化进程,在 用 encodeURICom ponent() 或 encodeURI() 代替 escape() 使用吧!
设置常量:<contanst name=“struts.i18n.ecording”value=http://www.mamicode.com/"utf-8">
在您通过表单向服务器提交数据时,一个经典的问题就是中文乱码问题。虽然我们所有 的 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>
表单中的数据会按照当前页面来进行编码。
<meta http-equiv="content-type" content="text/html;charset=utf-8;">
模拟消息头content-type,让浏览器以utf-8编码打开页面。
确保页面将表单用指定的字符编码进行编码。
七、cookie
cookie的值只能是ASCII字符,如果是中文,需要将中文转换成ASCII字符形式。
可以使用URLEncoder.encode()方法和URLDecoder.decode()方法来进行这种转换。
中文乱码的总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。