`

get提交时中文传值乱码的问题

web 
阅读更多

get提交时中文传值乱码的问题


url=curWarnList.action?paramBean.bsIndex=1&paramBean.siteName=萧山A基站,href连接提交其实是get提交方式,会造成中文乱码。
这个主要是编码方式不统一。JSP(手动设置)、Java(字符串是unicode编码)、操作系统、、数据库()、Tomcat等等,各种不同环境介质都有不同的编码方式,如果编码方式不统一,就会造成乱码。

url参数中文是以ISO8859-1的编码方式传递(url是通过web容器处理的,而tomcat默认的编码方式ISO8859-1),struts的编码方式是UTF-8,如果jsp页面,myeclipse、web.xml中org.springframework.web.filter.CharacterEncodingFilter,都是UTF-8编码,直接传中文一般是不会乱码的,如果再有乱码。....

对于POST方式,表单中的参数值对是通过request body发送给服务器,此时浏览器会根据网页的meta标签中的content="text/html; charset=UTF-8"中指定的编码进行对表单中的数据进行编码,然后发给服务器,在服务器端的程序中我们可以通过request.setCharacterEncoding("charset")方式(JSP代码) 设置编码,然后通过request.getParameter获得正确的数据。所以使用Post提交数据,编码方式就是我们可以控制的了。Post表单的Html一般写法如下:
<form action="test.jsp" method="post">
id:<input type="text" name="id"/>
name:<input type="text" name="name"/>
<input type="submit" value="发送"/>
</form>

目前收集到4中方法,中文传参一documentPath为例:
1.改为form方式提交,不用超链接方式提交,用form方式传参指定不乱码。

2.
使用Get方式提交数据,浏览器会对URL进行URL encode,然后发送给服务器,不同的浏览器可能会有不同的编码方式,因此发送之前需要使用JavaScript对参数进行统一编码,比较麻烦
通过encodeURI(encodeURI(checkText))提交,java代码中用URLDecoder.decode解码:
<script>
function download(documentPath){
var url = "<c:url value='/product/download.action?documentPath='/>"+documentPath;
url = encodeURI(encodeURI(url));
window.location.href=url;
}
</script>


java代码中取中文:
String documentPath = (String) request.getParameter('documentPath');
documentPath = URLDecoder.decode(documentPath,"utf-8");

3.修改tomcat的server.xml中的connector,添加URLEncoding="UTF-8"

4.中文从java中传到jsp再通过url传到java:
java中编码:URLEncoder.encode(URLEncoder.encode("传递的中文","utf-8"));
java中解码码:URLDecoder.decode(request.getParameter('documentPath'),"utf-8");
或者
request.setCharacterEncoding("UTF-8"); //java代码中这样设置一下,将请求编码改为utf-8,但是只对post方式有效
String path= request.getParameter("documentPath"); 
String method = request.getMethod(); //获取提交方式 
if(method!=null && "GET".equals(method)){ //如果是get的方式的话 
path= new String(path.getBytes("ISO8859-1"), "UTF-8"); 
}

5.配置过滤器,但配置过滤器也一般适用于post提交

分享到:
评论

相关推荐

    前后台传值乱码问题万能思想,通用

    "前后台传值乱码问题万能思想,通用"的主题着重于解决这个问题的通用思路,而不是具体的代码实现。以下是对这个主题的详细说明: 首先,我们需要理解“乱码”产生的原因。乱码通常出现在数据在不同字符集之间转换时...

    jsp页面传值中文乱码问题处理.docx

    jsp页面传值中文乱码问题处理 在 JSP 页面中传值时,中文字符可能会出现乱码问题,这...JSP 页面传值中文乱码问题可以通过修改编码方式、设置输出编码、接收参数编码、Get 提交编码和数据库连接参数编码等方式来解决。

    传值 乱码 处理 jsp 处理表单时

    ### 传值与乱码处理在JSP中的实践 #### 一、背景介绍 在Web开发过程中,尤其是在处理用户输入的数据时,经常会遇到一个让人头疼的问题——“乱码”。这通常发生在不同编码格式之间转换不当时。对于Java Server ...

    jsp传值中文乱码问题解决方法示例介绍.docx

    本篇将详细介绍如何解决JSP传值过程中出现的中文乱码问题。 首先,我们需要理解乱码产生的原因。在网页中,数据的编码和解码过程需要保持一致。如果服务器和客户端之间使用的字符编码不同,就可能出现乱码。例如,...

    jsp传值中文乱码问题解决方法示例介绍

    在开发Java Web应用程序时,尤其是使用JSP技术时,经常遇到的一个问题是中文字符显示为乱码。这主要是由于字符编码不一致导致的。本篇文章将详细介绍如何解决JSP中的中文乱码问题,并通过示例代码进行说明。 1. **...

    解决乱码问题

    解决GET提交乱码问题的方法是在获取参数值时进行编码转换,例如:`new String(request.getParameter("id").getBytes("ISO-8859-1"), "UTF-8")`。 #### 五、URL传值乱码 URL传值时出现的乱码问题,解决策略与GET...

    JSP页面传值乱码过滤方法

    在Web开发中,JSP(Java Server Pages)是一种常用的动态网页技术。使用JSP开发的Web应用经常遇到的一个...希望上述分析和解释能够帮助大家更好地理解和解决JSP页面传值乱码的问题,从而提高JSP程序设计的质量和效率。

    jsp页面显示中文乱码解决.pdf

    get 方式传值乱码是由于浏览器根据页面的 charset 编码方式对传值进行编码,然后提交至服务器交给 Tomcat,Tomcat 对这些信息进行解码时,采用的解码方式是由 server.xml 文件中的 URLEncoding 设置决定的。...

    javaee中的乱码问题及解决方案(持续更新)(修改后).docx

    解决URL传值乱码的方法与表单GET提交方式相同,需要正确处理编码和解码过程。 5. **MySQL的乱码问题** MySQL数据库中的乱码问题通常涉及数据库连接的字符集设置。需要在MySQL的配置文件`my.ini`中修改两项设置,...

    Lotusscript代理获取url的传值及解码

    ### LotusScript 代理获取 ...通过上述步骤,我们可以有效地解决在 Domino 服务器中通过 AJAX 提交数据时遇到的中文乱码问题。这种方式不仅适用于 POST 方法,也适用于 GET 方法,确保了前后端之间的数据传输准确性。

    JSP中文解码方法

    - 表单GET提交时,浏览器根据页面charset编码数据,服务器(如Tomcat)使用`URIEncoding`解码。 - 解决方法:在Tomcat的`server.xml`中,为HTTP或AJP Connector配置`URIEncoding="gbk"`或`URIEncoding="utf-8"`,...

    jquery ajax传递中文参数乱码问题及解决方法说明

    本文将详细探讨使用jQuery进行Ajax请求时,传递中文参数可能出现的乱码问题,并给出解决这些问题的方法。当使用jQuery进行Ajax通信时,数据通常需要通过GET或POST方法传输,如果参数为中文,很可能会因为编码方式不...

    java springmvc乱码解决归纳整理详解

    3. GET 提交方式乱码处理:可以通过设置 Tomcat 的 server.xml 文件中 port 的 URIEncoding 属性来解决 GET 提交方式的乱码问题。 4. POST 提交方式乱码处理:可以通过在 web.xml 文件中设置 ...

    JSP页面中文参数的传递(get和post方法分析)

    JSP页面中文参数传递是Web开发中非常常见且重要的知识点,尤其是在中日韩等使用非ASCII...通过上述方法的实施,可以有效解决在JSP页面中传递中文参数时遇到的乱码问题,确保Web应用的用户界面友好性和数据的准确传递。

    struts2.x一些技术细节资料总结

    在遇到类似问题时,可以搜索相关的关键词,如“tomcat get 乱码”,以找到更多的解决方案和讨论。 总之,Struts2.x提供了多种Action间传递值的方法,如Chain和RedirectAction。理解这些技术细节对于优化和调试...

    利用Ajax实现在脚本里传值实例介绍

    设置字符编码为"UTF-8",防止中文乱码问题。通过`getWriter()`方法获取到`PrintWriter`对象,用来输出响应内容。最后,使用`flush()`和`close()`方法将输出内容发送给客户端并关闭流。 这个实例展示了一个基本的...

    javaWEB项目答辩.docx

    ,以避免中文乱码。 七、JSP 页面元素构成 JSP 页面元素构成包括静态内容、指令、代码块、Html 注释和 JSP 注释。静态内容就是 JSP 页面中的 Html 标签、Css、JavaScript 代码。指令用于控制整个 JSP 页面的信息...

    内部测试题PHP(docx)

    1. 表单提交方法:GET与POST GET方法将数据附加在URL后面,数据可见且有长度限制,适合传递少量、不敏感的数据;POST方法将数据放在请求体中,数据不可见,无长度限制,适合传递大量或敏感数据。 2. Session与...

    2016PHP面试题

    实现中文字串截取无乱码的方法。 ```php function mb_substr($str, $start, $length, $charset = "UTF-8") { return mb_substr($str, $start, $length, $charset); } ``` #### 23. 对于大流量的网站,您采用什么...

Global site tag (gtag.js) - Google Analytics