我的工程中出现了url传参乱码的问题,通过baidu等,找到解决方法如下。
在接受参数的地方,通过
String name= new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
这样就可以将url编码转会utf-8,因为服务器传参时采用的是ISO-8859-1编码。
但是这样在tomcat下好使但是在工程部署的weblogic下依然会出现乱码。
原因我估计应该是weblogic使用的不是ISO-8859-1编码。为了让代码更通用一些,可以在传参前进行编码,之后再解嘛
传参前js中:
name= encodeURI(encodeURI(name));
//这里使用了两次编码,一次在tomcat下不好使,不过在weblogic是可以的,为了通用,试用了两次转码
接受参数的java:
String name= java.net.URLDecoder.decode(request.getParameter("name"),"UTF-8");
或者使用js解码:name = decodeURI("<%=ruleName%>")
这样在tomcat和weblogic下都好使。
参数“你好”
encodeURI("你好") %E4%BD%A0%E5%A5%BD
encodeURI(encodeURI("你好") ) %25E4%25BD%25A0%25E5%25A5%25BD
所以在经过url传参时,由于%号属于特殊字符,所以经过一次encodeURI编码后,%将和后面的数字组合进行转义,所以一次转码后会编程乱码,而两次转码后,%变成了%25,经过url传参后%25又被还原成%,成为一个合法的encodeURI编码的字符串,再经过转码就能正常显示了
方法二:
传参前js中:
name = escape(escape(name))
接受参数端:
String name= request.getParameter("name");
js name=unescape("<%=ruleName%>"));
方法三:
将上面的encodeURI改为encodeURIComponent也同样好使
分享到:
相关推荐
总之,解决URL乱码问题需要理解URL编码机制,正确设置页面编码,以及在前后端之间进行适当的编码转换。在实际操作中,可能还需要根据具体的应用环境和框架进行调整,确保所有环节都能正确处理中文和其他非ASCII字符...
在Java开发中,遇到中文乱码问题是一种常见的挑战,特别是在处理URL时。URL中文乱码问题主要是由于URL编码和解码过程中的不一致导致的。下面将详细介绍如何解决这个问题,并探讨几种常用的方法。 首先,我们需要...
"乱码问题的解决" 在 Web 开发中,乱码问题是常见的...乱码问题的解决需要从多方面入手,包括设置页面编码、服务器编码、客户端编码、数据库编码和超链接的 url 编码等。只有通过统一编码,才能避免乱码问题的出现。
以上就是解决在使用jQuery获取URL参数时出现中文乱码问题的两种方法,以及相关的编码和解码处理方式。需要注意的是,乱码问题的出现主要是由于编码和解码不一致导致的,所以在前后端处理URL参数时,一定要注意正确地...
本文将详细介绍如何在前端和后端两个层面有效地解决URL乱码的问题。 #### 二、前端解决方案:转换URL为十六进制编码 1. **基本思路**:在JavaScript中,可以利用`encodeURI`方法对包含中文或特殊字符的URL进行编码...
解决 PHP 中 URL 地址栏传参数中文乱码问题可以使用 urlencode()、urldecode()、iconv()、mb_convert_encoding()、mb_internal_encoding()、ob_start()、base64_encode() 等多种方法,每种方法都有其特点和使用场景...
配置 Web.xml 解决中文乱码问题 本文主要讨论了在 Web 开发中遇到的中文乱码问题,并提供了一些解决方案。首先,需要确定中文乱码问题不是由浏览器引起的,然后讨论了 Tomcat 服务器配置和数据库 bean 配置中的一些...
3. **解决URL乱码**:在`Index.jsp`中,两个按钮点击事件分别调用了`doSubmit()`和`doAction()`函数,这两个函数使用`URLEncoder.encode()`对中文字符串进行编码,确保在URL中传输时不出现乱码。例如: ```java (...
### 使用过滤器解决中文乱码问题 在Web开发过程中,经常遇到的一个问题是中文或其它非ASCII字符的乱码问题。这种现象通常出现在浏览器接收的数据与实际编码格式不匹配时。解决此类问题的一种常见方法是使用过滤器...
针对以上情况,我们可以采取以下策略来解决URL传值乱码问题: 1. **确保正确编码**:在前端,使用`encodeURIComponent()`函数对URL参数进行编码,确保所有特殊字符都被正确处理。例如: ```javascript let url...
jsp 用过滤器解决中文乱码问题的方法 jsp(JavaServer Pages)是一种广泛应用于Web开发的技术,但是在实际开发中,我们经常会遇到中文乱码问题。为了解决这个问题,我们可以使用jsp过滤器来实现编码设置。我今天要...
本篇文章将深入探讨这个问题,并提供一种彻底解决中文乱码问题的方法。 首先,我们需要理解什么是乱码。乱码通常出现在字符编码不匹配的情况下,即数据存储或传输时采用的编码格式与读取或显示时使用的编码格式不...
SpringMVC解决中文乱码问题 SpringMVC 框架中,中文乱码问题是常见的问题之一。解决这个问题的关键是正确地配置字符编码。下面我们将详细介绍 SpringMVC 中解决中文乱码问题的思路和方法。 配置文件中的字符编码 ...
本文将深入探讨如何在Java中有效地解决URL中文乱码问题。 首先,我们需要理解URL编码的原理。URL编码遵循RFC 3986标准,它规定了在URL中非ASCII字符应被转换为百分号编码形式(%xy),其中xy是该字符的UTF-8编码的...
Java 乱码问题是 Java 开发中常见的问题之一,解决这个问题需要了解 Java 的编码方式、JSP 中文乱码问题、Tomcat 5.5 中文乱码问题、JDBC ODBC Bridge 的 Bug 及其解决方法、Solaris 下 Servlet 编程的中文问题及...
Java 解决中文乱码问题 Java 中文乱码问题是中国程序员无法避免的话题。乱码的出现是由于中文和英文的编码格式不同,解码也是不一样的。如果中国的程序员不会遇到乱码,那么只有使用汉语编程。Han语编程是怎么回事...
今天,我们将讨论如何解决URL传值到Action乱码问题,特别是在Struts2框架中。 乱码问题的原因 乱码问题的原因是因为URL传值时,浏览器和服务器之间的编码方式不同所致。在大多数情况下,浏览器使用UTF-8编码,而...