我是用这个方法解决的:new String(str.getBytes("ISO-8859-1"))
网上还有这些方法:
http://zhidao.baidu.com/question/214835690.html
URL中编码格式为ISO-8859-1,处理中文只需将编码格式转换ISO-8859-1
方法一:
http://xxx.do?ptname='我是中国人'
String strPtname = request.getParameter("ptname");
strPtname = new String(strPtname.getBytes("ISO-8859-1"), "UTF-8");
方法二(推荐使用):
<%@ page contentType="text/html;charset=gb2312" %>
<a href="ds.jsp?url=<%=java.net.URLEncoder.encode("编码的是这里","GB2312")%>">点击这里</a>
<%
//request.setCharacterEncoding("GBK");
if(request.getParameter("url")!=null)
{
str=request.getParameter("url");
str=java.net.URLDecoder.decode(str,"GB2312");
str=new String(str.getBytes("ISO-8859-1"));
out.print(str);
}
%>
==================================
public String chinatoString(String str)
{
String s=str;
try
{
byte tempB[]=s.getBytes("ISO-8859-1");
s=new String(tempB);
return s;
}
catch(Exception e)
{
return s;
}
}
====================================================
function URLencode(sStr)
{
return escape(sStr).
replace(/\+/g, '%2B').
replace(/\"/g,'%22').
replace(/\'/g, '%27').
replace(/\//g,'%2F');
}
方法三:
如果用jstl的话,可以自己写一个el的function,调用URLEncoder.encode来编码。
IE缺省对URL后面的参数是不编码发送的,但是tomat缺省是按ISO8859-1来进行URL解码,因此才会出现上述错误。好的做法是:
1、在URL参数中确保用UTF-8编码之,方法可以用js函数encodeURI(),或调用自定义的el function;
2、设置server.xml中的Connector熟悉URIEncoding="UTF-8",确保解码格式与编码格式统一;
方法四:
<script>
for(var i=0;i<document.links.length;i++){
document.links[i].href=encodeURI(document.links[i].href);
}
</script>
在action中,String s=request.getParameter("s");
s=new String(s.getBytes("iso-8859-1"),"gbk");
以上方法是收聚了一些网友所讲的解决方法 。
分享到:
相关推荐
### AJAX传递中文参数乱码解决办法 在Web开发过程中,数据传输是不可或缺的一部分,而AJAX作为一种无需重新加载整个页面的情况下就能与服务器交换数据的技术,被广泛应用于动态数据交互场景中。然而,在处理中文等...
然而,在处理中文字符时,Ajax请求可能会遇到乱码问题,这主要是由于编码格式不一致或者处理不当导致的。本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**...
### AJAX解决中文乱码(Java/JSP) #### 知识点概述 在Web开发中,尤其是在使用Java与JSP技术栈进行开发时,经常会遇到的一个问题是:如何处理AJAX请求中的中文字符乱码问题。本篇文章将详细介绍如何通过前端编码...
通过上述方法,我们可以有效地解决在使用ExtJS进行Ajax同步请求时,中文参数出现乱码的问题。关键是保证前后端编码的一致性,以及正确地使用编码与解码函数。此外,还可以考虑在服务器端配置文件中设置统一的字符集...
例如,我们使用 AJAX 通过 URL 传递中文参数 "中文测试" 给 Servlet,Servlet 在接收参数时却变成了乱码 "�������"。这使得我们的应用程序无法正确地处理中文参数。 解决方案 要解决这个问题,我们可以从两...
### AJAX技术使用XMLHttpRequest对象传递参数的中文乱码问题 #### 背景与问题概述 在使用AJAX技术进行前后端数据交互时,经常会出现中文字符编码的问题,尤其是在使用`XMLHttpRequest`对象发送请求的过程中。例如...
3. **URL参数传递**:在URL中传递含有中文的参数。 #### 二、问题分析 乱码产生的根本原因在于字符编码不一致或编码转换错误。具体来说,在数据传输过程中涉及到以下几个关键环节: 1. **客户端编码**:前端页面...
- 在发送Ajax请求时,对URL参数进行编码,确保字符编码的一致性。使用`encodeURIComponent`函数可以将参数转换为URI组件,该函数会自动处理特殊字符和非ASCII字符的编码,从而避免乱码问题。 ```javascript url ...
本文介绍了如何解决jquery.ajax在url中传递中文导致的乱码问题。 首先,了解中文乱码产生的原因是非常关键的。在jquery.ajax请求中,默认的contentType是`application/x-www-form-urlencoded`。在这种情况下,如果...
然而,当Ajax传递包含中文字符的参数时,由于编码问题,可能会导致后台接收到的数据出现乱码。本文将深入探讨如何有效地解决这一问题,确保中文参数在Ajax请求中能正确传输。 首先,我们要了解JavaScript中的编码...
在使用Ajax进行POST提交时,中文字符可能会遇到乱码问题,这是因为数据在传输过程中编码与解码不匹配导致的。Ajax以UTF-8编码发送数据,但服务器端可能使用了不同的字符集(如GB2312)来解析,这就产生了乱码。本文...
如果数据包含中文或其他非ASCII字符,使用`encodeURIComponent()`函数进行URL编码,避免在传输过程中出现乱码。 ```javascript let data = { username: "张三", message: "你好,世界!" }; let encodedData = ...
UTF-8编码是一种常见的Unicode实现,它使用1到4个字节来表示每个Unicode字符,对于中文汉字,通常每个字占用3个字节。因此,当Ajax发送或接收UTF-8编码的数据时,理论上不应出现乱码。 然而,乱码问题可能源于以下...
在使用jQuery的AJAX方法进行数据交互时,有时会遇到中文字符乱码的问题。这是因为浏览器、服务器和前端之间编码不一致导致的。本文将详细解释这个问题,并提供有效的解决方案。 首先,我们要理解AJAX(Asynchronous...
2. **URL编码解码问题**:在传递URL参数时,可能需要对特殊字符进行编码,通常使用`encodeURI`或`encodeURIComponent`函数。然而,如果编码两次,服务器端需要解码两次,以避免乱码。如`encodeURIComponent...
在UTF-8环境下,URL传递的中文参数在到达服务器时会被默认转换为ISO-8859-1编码。因此,尽管项目是UTF-8编码,但解码时仍需使用GBK,如`String checkname = new String(request.getParameter("checkname").getBytes...
"在页面上用action传递参数到后台出现乱码的解决方法"这一主题聚焦于解决一个常见的问题,即当通过ACTION(比如一个特定的后台处理方法)接收前端发送的参数时,可能出现的字符编码不匹配导致的乱码现象。...
**假设场景**:一个简单的Java Web应用,使用Spring MVC框架,前端使用jQuery发起Ajax请求获取包含中文的JSON数据。 **步骤**: 1. **配置前端页面**: ```html <!DOCTYPE html> ...
### Java与Ajax:异步交互的艺术 在深入探讨Java与Ajax的协同作用之前,我们首先应当理解Ajax(Asynchronous JavaScript and XML)的本质及其为何成为现代Web开发中的关键组成部分。 #### Ajax:异步通信的基石 ...