//URL 传递中文的2种方法
//方法一:
String encodeUrl = java.net.URLEncoder.encode("costBudgetsForm.orgName=投资银行总部/北京三部","UTF-8");
String enString = java.net.URLDecoder.decode(encodeUrl,"UTF-8");
System.out.println(enString);
//方法二:(适合SSH, web.xml拦截器UTF-8,页面UTF-8)
encodeUrl = "costBudgetsForm.orgName=投资银行总部/北京三部"; //直接使用URL传递
String sString = new String(encodeUrl.getBytes("ISO-8859-1"), "UTF-8");
System.out.println(sString);
//方法三:
encodeUrl = java.net.URLEncoder.encode("costBudgetsForm.orgName=投资银行总部/北京三部","UTF-8");
String tranf = new String(encodeUrl.getBytes("ISO-8859-1"),"UTF-8");
enString = java.net.URLDecoder.decode(tranf,"UTF-8");
System.out.println(enString);
普通乱码:
尝试:1、使用过滤器进行拦截所有请求,设置request,response 编码
2、为了保证get数据采用UTF8编码,在TOMCAT web.xml 中进行了如下设置, URIEncoding ,
<Connector port="8080" ...... URIEncoding="UTF-8"/>
这里指定了get时候的数据编码。但是,当使用IIS作为webserver转发servlet/jsp请求给Tomcat时候,这个设置却失效了。其实原因很简单:IIS是通过AJP协议,把请求转发到Tomcat监听的8009端口上的,所以这里针对8080的设置自然就无效了。正确的方法是进行下面的设置:
<Connector port="8009" enableLookups="false" redirectPort="8443"
debug="0" protocol="AJP/1.3" URIEncoding="UTF-8"/>
页面URL传递中文 终极解决方案:
页面进行2次encodeURI编码,进行2次URI编码的好处是不管浏览器用户在页面来设置编码,服务器只需一次URLencode转换成UTF-8即可。
params = encodeURI(encodeURI(params));
后台
String paramsTrans = new String(params.getBytes("ISO-8859-1"),"UTF-8");
params = java.net.URLDecoder.decode(paramsTrans , "UTF-8");
当然如果页面参数太多可以使用jquery-form提供的serialize()序列化:
参见:http://ollevere.iteye.com/blog/1554355 (jquery serialize传中文乱码解决方法)
分享到:
相关推荐
### ASP.NET中URL传递中文的解决方案 在ASP.NET开发过程中,经常会遇到通过URL字符串在不同页面之间传递参数的情况。特别是当这些参数包含中文时,容易出现乱码的问题。这类问题通常源于编码方式不匹配,因此解决...
ASP.NET 下 URL 传递中文的解决方案 在 ASP.NET 开发中,URL 传递中文参数是一件很常见的事情,但是却常常会出现乱码的问题。解决这个问题的方法有多种,本文将介绍三种解决方案。 解决方案一:设置 web.config ...
这些解决方案可以帮助我们在Web应用程序中传递中文参数时避免乱码问题。 相关知识点 * URL传值到Action乱码问题 *乱码问题的原因 * 解决乱码问题的方法 * 使用过滤器解决乱码问题 * 在Action中编码转换 * Apache ...
本文将深入探讨“奇数个中文字符URL传递乱码”的问题,并提供一种可行的解决方案。 ### 一、问题背景 #### 1.1 URL编码概述 URL(Uniform Resource Locator)用于标识互联网上的资源位置。由于某些字符在URL中具有...
例如,前端页面中对URL进行了不必要的解码,然后再传递给服务器,这样就会导致原本编码后的值被错误解析。 3. **编码格式不一致**:不同的编程语言或者工具可能使用不同的字符编码格式,比如UTF-8、GBK等。如果前后...
js 全选反选取消, ASP.NET中url传递中文的解决方案, C#中使用反射显示程序集的所有类型和属性, js怎么取表格中的某一行的值, SQL Server 查询分析器快捷键集合, URLRewrite能够对URL进行重写,失败的原因
为了解决这一问题,有几种常见的解决方案,这里我们将详细讨论。 1. 设置Web.config文件: 在ASP.NET环境中,可以通过修改Web.config文件来设定应用程序对URL的编码和解码方式。在`<system.web>`节点下,添加`...
然而,当URL需要传递包含中文字符的参数时,由于不同系统和环境的编码差异,可能会导致中文参数在传输过程中出现乱码。为了解决这个问题,我们可以利用JavaScript中的`encodeURI`函数来对中文参数进行编码,然后在...
本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**:服务器与客户端(浏览器)之间使用的字符编码格式不同,例如服务器使用GBK编码,而浏览器使用UTF-8编码...
本文主要讨论了两个关键问题及其解决方案。 首先,Java中的`URLEncoder`类是一个常见的误区。尽管其名称暗示它用于编码URL,实际上它主要用于HTML表单编码,即将非ASCII字符转换为适合HTTP请求的格式。`URLEncoder....
PB 提交 WEB 请求包含中文参数的解决方案全过程 PB 是 PowerBuilder 的缩写,这是一种流行的开发工具,但是在提交 WEB 请求包含中文参数时,会出现乱码问题。本文将详细介绍如何解决这个问题,包括使用 GETURL 和 ...
以下是一些关于这个主题的关键知识点和解决方案。 1. **URL编码**: - 对于中文字符,我们通常使用`urlencode()`函数来编码URL中的参数。这个函数会将非字母数字字符转换为百分比编码(%XX,其中XX是ASCII码的十六...
### 如何用Response.Redirect方法传递汉字 在ASP.NET开发中,使用`Response.Redirect`方法进行页面跳转并传递...希望本文提供的解决方案能帮助开发者们顺利解决汉字传递中的乱码问题,提高项目的稳定性和用户体验。
以下是对这个问题的深入探讨和解决方案: 首先,我们要理解URL编码的基本原理。URL(统一资源定位符)是不能直接包含非ASCII字符的,包括中文在内的大多数非英文字符。因此,当在URL中使用非ASCII字符时,需要将其...
本文将深入探讨如何解决JavaScript(简称JS)在传递中文字符时出现的乱码问题,并提供具体的解决方案。 #### 一、问题背景 在Web应用中,前端页面与后端服务之间通过HTTP请求进行数据交互是非常常见的操作。当这些...
JQuery的跨域解决方案主要依赖于JSONP(JSON with Padding)技术。JSONP是一种绕过同源策略的方式,它利用HTML中的`<script>`标签没有同源策略限制的特点。当jQuery使用`dataType: 'jsonp'`时,它实际上是在做以下几...
#### 二、解决方案 为了解决这个问题,我们可以采取以下两个步骤: 1. **前端编码**:在客户端发送请求之前,对包含中文字符的参数进行编码。 2. **后端解码**:在服务器接收到请求后,对这些参数进行解码还原。 ##...
本文将深入探讨这些知识点,并提供相应的解决方案。 首先,URL编码是因URL(统一资源定位符)中不能包含某些特殊字符或非ASCII字符而产生的需求。在Web应用程序中,我们可能会在URL中传递参数,例如查询字符串。...
在处理URL地址传参中文乱码时,通常有三种解决方案: 1. 字符串转码:使用new String(“xxxxx”.getBytes("iso-8859-1"),"utf-8")方式将字符串转码为UTF-8编码。然而,这种方式有很大的弊端,因为它可能无法将所有...