POST:
request.setCharacterEncoding("utf-8");
String url = request.getParameter("url");
GET:
request.setCharacterEncoding("utf-8");
String url = request.getParameter("url");
url=new String(url.getBytes("ISO-8859-1"),"UTF-8");
1.在浏览器中发送HTTP请求,输入的中文,浏览器会自动编码: URLEncoder.encode(String,"utf-8");
2.JAVA服务器收到参数后,需要解码: URLDecoder.decode(String,"UTF-8");
这个解码的过程,由tomcat自动完成,所以通常我们使用
request.setCharacterEncoding("utf-8");设置解码方式,tomcat就自动调用
URLDecoder.decode(String,"UTF-8");完成解码.
3.以上方式,当HTTP请求为POST时好时,为GET时乱码。
原因: GET时,TOMCAT默认用ISO-8859-1解码。
这样,我们需要String url = request.getParameter("url");
url=new String(url.getBytes("ISO-8859-1"),"UTF-8");第二次转码。
关于GET方式乱码,可以参考: http://wq-pro.iteye.com/blog/1261444
4.例子:
String data = "http://www.baidu.com/s?tn=baiduhome_pg&ie=utf-8&bs=%E6%AC%A7%E7%B1%B3%E4%BC%BD+%E6%89%8B%E8%A1%A8%E4%BB%B7%E6%A0%BC&f=8&rsv_bp=1&rsv_spt=1&wd=%E6%AC%A7%E7%B1%B3%E4%BC%BD+%E9%81%8B%E5%8B%95%E7%B3%BB%E5%88%97%E6%89%8B%E8%A1%A8%E4%BB%B7%E6%A0%BC&rsv_sug3=1&rsv_sug4";
data = URLEncoder.encode(data);
//将此data作为下一个URL的ref的参数值
String url = "http://localhost:88/trail/trail?action=save&uid=geust1001&siteid=kf_9762&sid=ggg766&url=http%3A//bbs.ntalker.com/thread.php%3Ffid%3D12&ttl=Php%20wind%20%E9%97%AE%E9%A2%98%E5%BF%AB%E9%80%9F%E8%A7%A3%E7%AD%94%20-%20Ntalker%E8%AE%BA%E5%9D%9B%20-%20Powered%20by%20PHPWind&ref=" + data;
总结: URL编码,可以理解为给特殊字符转义;有别与UTF8、GBK转码。
分享到:
相关推荐
因此,对于包含中文或其他非ASCII字符的数据,更推荐使用POST方法或者将数据通过JSON或其他格式封装在请求体中。 总之,处理GET方法中中文参数乱码问题的关键在于正确编码和解码URL中的非ASCII字符。同时,为了安全...
为了避免这种情况,通常建议Java源文件尽量避免直接使用中文(注释除外),如果必须使用,可以通过命令行指定编码参数如`-encoding GBK`或`-encoding gb2312`进行编译。对于JSP,可以在文件头部添加`;charset=GBK"%>...
首先,对于Java源文件,由于Java内核和class文件基于Unicode,因此尽量避免在Java源代码中直接使用中文字符,特别是在类名、方法名或变量名中。如果必须使用,可以通过命令行指定编码参数来编译,例如`javac -...
1. **URL编码**:在发送GET请求前,应该使用JavaScript的`encodeURIComponent()`函数对包含中文的参数进行URL编码,这样可以确保中文字符在URL中以正确的格式传递。 2. **服务器端解码**:服务器端接收到带有编码的...
在Java的Web应用程序中,处理`request.getParameter()`中的中文参数并确保不出现乱码问题是一项常见的挑战。这个问题的复杂性源于在数据传输过程中涉及的多次字符编码和解码操作,以及浏览器、Web服务器(如Tomcat)...
无论是GET还是POST方式提交,当使用`request.getParameter`获取参数时,如果没有进行正确的编码转换,都可能导致乱码。这是因为Tomcat服务器默认使用ISO-8859-1编码处理请求参数。 对于POST请求,一种解决方法是...
浏览器在构建这个URL时,会按照默认的字符集(非UTF-8)对中文参数进行编码,而Spring MVC在处理请求时,默认可能并未正确设置解码方式。 2. 字符编码:HTTP协议允许服务器和客户端之间约定字符编码,但如果没有...
因为Tomcat默认以ISO8859-1处理POST方式提交的参数。为了解决这个问题,可以有两种策略。一种是在获取参数后立即进行编码转换,如`String str = new String(str.getBytes("ISO8859-1"), "utf-8")`,但这会增加代码的...
- **接口请求方式**:GET 或 POST 等。 - **请求 URL**:指定访问地址。 - **请求参数**: - 字段:类的属性。 - 说明:中文释义。 - 类型:属性类型(String、Number、Object、Array)。 - 是否必须:是/否。 ...
在Web开发中,PHP与AJAX的...当使用AJAX发送POST请求时,如果直接将包含中文字符的变量(如`val`)作为请求参数,可能会因为编码问题导致乱码。例如以下代码: ```javascript http_request.open("POST", url, true); ...
- 尽量使用POST提交数据。 - 检查请求的来源(Referer)。 - 在表单提交时加入图形验证码。 - 实施token验证机制,确保请求的有效性和安全性。 五、变量安全使用 1. UI变量在HTML标签中或属性值中使用时,应...
在IT行业中,数据库管理系统MySQL是广泛使用的,但与之相关的字符编码问题经常困扰开发者,特别是涉及到中文字符时。本文将详细解析如何解决在JSP、Tomcat和MySQL环境下出现的中文乱码问题。 首先,我们要了解乱码...
- 尽量使用`$(selector).doSomething()`而不是`$("body").find(selector).doSomething()`,减少DOM查找次数。 ### 9. jQuery与其他库的兼容 jQuery提供`$.noConflict()`方法,允许在同一个页面上同时使用jQuery和...
- **应用场景**:当从客户端接收的数据(如POST或GET请求中的参数)出现乱码时,通常需要使用此方法来设置正确的编码。 - **注意事项**: - 该方法必须在任何读取请求数据的操作之前调用,否则不会生效。 - `...
3. **乱码**:当程序读取或处理文本时使用的编码方式与该文本实际采用的编码方式不一致时,就会出现乱码。 #### 二、乱码的解决方法 1. **方法一:转换字符编码** - **原理**:将一种编码方式转换为另一种编码...
关于坐标系:在一个图档中第一次用刀路功能时会用“使用的坐标系”构建一个名称为“JU_GEOM1”的几何坐标系,以后的刀路都用这个几何坐标系。如果觉得构建的坐标系不合适而要重新构建的话,你必需改变“JU_GEOM1”...
- `<form name="form1" method="post" action="someplace">`:定义了一个表单,其中`method`属性指定了提交方式为POST,`action`属性指定了表单数据提交的URL。 2. **表单控件**: - `...
- 对于不再使用的代码,可以通过注释的方式将其隐藏,而不是直接删除。 - 示例: ```java // TODO: Remove this code in the next release. // @deprecated public void oldMethod() { ... } ``` **4.6 应用...
《第一章 概述:UDF中文帮助》 在Fluent这一强大的计算流体动力学(CFD)软件中,用户自定义函数(User-Defined Functions,简称UDFs)是一项核心特性,它允许用户根据特定需求扩展软件的功能。本章将对UDFs进行...
例如,%year%、%monthnum%、%day%、%postname%、%category%、%author%、%hour%、%minute%和%second%等参数,可按照需求组合使用,形成个性化链接结构。常见的设置方式如/%postname%.html或/%category%/%postname%....