原文出处:http://eeelin.iteye.com/blog/1777719
URL编码很混乱
1.直接在网址栏输,网址路径中包含汉字,"www.xx.com/ff/问答",
"问答"将用的是utf-8编码.
2.直接在网址栏输,网址种的参数部分有汉字,"www.xx.com/ff/info.php?name=苏州",
"苏州"用的是操作系统的'默认编码'编码.据说可以在浏览器里设置这个编码.
3.在网页上点submit按钮,GET或者POST提交,按照网页编码格式编码,下面是U8编码
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
4.用AJAX提交,有的浏览器是U8,有的是取系统默认编码.
5.其他乱七八糟的....
解决办法
无任系统是什么,无任浏览器是什么,无任网页编码是什么
用Javascript的encodeURI()方法编码,就都变为unicode编码.
[encodeURI()的JS解码函数是decodeURI()]
客户端:两次JS
encodeURI(encodeURI($("#userName").val()));
服务端:一次解码
Java: String name = URLDecoder.decode(old,"UTF-8");
php: urldecode ("%E8%83%A1%E6%96%8C");
原理:
url只可以传ASCII码里的字符,其他字符过不了,先要变%XX才可以通过.
比如:"胡斌"要变"%E8%83%A1%E6%96%8C"[u8编码]才可以通过.
这里最最重要的是:E8-83-A1这U8编码的结构非常重要,因为你知道这是U8,
为了不破坏这个结构,再URL编码一下,变:
%25E8%2583%25A1%25E6%2596%258C
可以看到,只有"%"再次变"%25",E8-83-A1这个你知道的U8编码结构依然还在.
然后:%25E8%2583%25A1%25E6%2596%258C到了服务器,
服务器根据规定[通过的肯定是URL编码过的,然后检查有没有类似"%XX"的东西,
看见"%XX"此类的东西,服务器帮着还原了,注意'%'后仅仅是两个X]
%25E8%2583%25A1%25E6%2596%258C还原成%E8%83%A1%E6%96%8C,
就是说服务器以为你传的参数就是"%E8%83%A1%E6%96%8C",
但是你知道,"%E8%83%A1%E6%96%8C"确实是你要的参数,只不过你编码过了,
而且你也知道这个是U8编码结构,所以你再用U8反编一次就可以了.
你也可以这么记:
服务器这么"吃"数据,只能吃"一个字母"或者"%XX"这两种格式.其他吃不下.
相关推荐
"前后台传值乱码问题万能思想,通用"的主题着重于解决这个问题的通用思路,而不是具体的代码实现。以下是对这个主题的详细说明: 首先,我们需要理解“乱码”产生的原因。乱码通常出现在数据在不同字符集之间转换时...
jsp页面传值中文乱码问题处理 在 JSP 页面中传值时,中文字符可能会出现乱码问题,这是由于字符编码不一致所引起的。下面将详细讲解 JSP 中文乱码种类和解决方案。 JSP 文件中文内容显示乱码 在 JSP 文件中,如果...
本文将详细介绍如何解决Java中文传值乱码的问题。 首先,我们需要理解乱码产生的原因。乱码通常发生在字符编码不一致的情况下,例如,数据源使用的是UTF-8编码,而处理数据的程序或系统使用的是GBK或ISO-8859-1等...
本篇将详细介绍如何解决JSP传值过程中出现的中文乱码问题。 首先,我们需要理解乱码产生的原因。在网页中,数据的编码和解码过程需要保持一致。如果服务器和客户端之间使用的字符编码不同,就可能出现乱码。例如,...
#### JSP传值与乱码问题 在JSP中,传值通常指的是通过表单提交、URL参数、cookie、session等方式在客户端(浏览器)和服务器端进行数据交互。当数据从客户端传递到服务器时,如果编码设置不一致,或者客户端与...
在传值时会遇到中英文乱码 <filter-name>GBKEncoding <filter-class>com.sshnews.filter.GBKEncodingFilter</filter-class> <filter-name>GBKEncoding <url-pattern>/* </filter-mapping>
在部署WebLogic Server 10版本于UNIX操作系统时,可能会遇到中文乱码的问题,这主要...在实际操作过程中,可以参考提供的`weblogic10在UNIX下部署,中文乱码问题的解决.txt`文件,里面可能包含具体的步骤和解决方案。
了解这些基本概念后,结合以上三种方法,我们可以有效解决ASP.NET中URL参数传递中文时的乱码问题。在实际开发中,应根据具体项目需求和环境选择合适的方法,确保数据的正确传递。同时,为了兼容更多情况,建议在开发...
在Asp.Net开发中,遇到页面通过URL参数传递中文字符时出现乱码是...以上就是解决Asp.Net页面通过URL参数传递中文乱码问题的详细方法,通过选择合适的方法或组合使用这些方法,可以确保中文字符在URL中正确无误地传递。
本文将详细介绍如何解决JSP中的中文乱码问题,并通过示例代码进行说明。 首先,我们要理解乱码产生的原因。在Web应用中,数据在不同层次间传输时,如果字符编码不一致,就可能导致乱码。例如,从数据库读取的中文...
本文将围绕“Struts2配置文件传值中文乱码”这一主题,深入探讨其成因、解决方案以及相关的配置细节,旨在帮助开发者有效解决中文乱码问题,提升用户体验。 ### Struts2框架简介 Struts2是Apache组织下的一个开源...
"乱码问题的解决" 在 Web 开发中,乱码问题是常见的难题之一。乱码问题的出现主要是由于编码不一致引起的。编码不一致可能出现在多个方面,如页面编码、服务器编码、客户端编码、数据库编码等。在本文中,我们将...
在Web应用程序中,URL传值到Action是一个常见的操作,但是当传递中文参数时,经常会出现乱码问题。今天,我们将讨论如何解决URL传值到Action乱码问题,特别是在Struts2框架中。 乱码问题的原因 乱码问题的原因是...
### Java传值中的乱码问题及最简易的解决方法 在Java Web开发中,经常会遇到一个令人头疼的问题:客户端向服务器传递数据时出现乱码。这种情况不仅会影响用户体验,还可能导致程序逻辑错误。本文将深入探讨Java传值...
在处理中文汉字传值时,可能会遇到编码问题,导致中文字符无法正确传递。以下是对标题和描述中涉及知识点的详细解释: 1. **字符编码问题**:在Java Web应用中,尤其是在与前端交互时,字符编码是关键。页面通常...
在Web开发中,Ajax(Asynchronous ...总结,解决Ajax乱码问题主要涉及数据编码、请求头设置和服务器端解码,而页面传值则需根据需求选择适当的方法。理解并熟练运用这些技巧,能显著提升Web应用的性能和用户体验。
js向服务器端传递中文时乱码,搜索是可以通过这个解决乱码问题,包括传值乱码
在使用jQuery的ajax()函数进行数据传输时,中文乱码问题常常困扰着开发者。这个问题主要出现在数据发送到服务器时,由于编码格式不一致导致的字符乱码。以下是一些解决此问题的方法: 方法一:使用`encodeURI()`...
总的来说,解决Ajax传值到Servlet的乱码问题需要确保每个环节的编码设置一致,从JSP页面到Ajax请求,再到Servlet的接收和响应。只有这样,才能保证数据在整个传输过程中不发生乱码。记得在排查问题时,逐步检查每个...