在JSP接收URL传过来的参数时,总是拿到乱码,查看了网上很多的方法均无解。
试过title=new String(request.getParameter("title").getBytes("ISO-8859-1"),"utf-8");
本地测试title=new String(request.getParameter("title").getBytes("ISO-8859-1"),"gb2312");//本地正常//服务器乱码
研究一下午最终发现竟然是拦截器把接收参数先做了一次编码转化,转化成了UTF-8。
解决方案:
在头部重新定一下接收参数的编码
request.setCharacterEncoding("gb2312");
问题解决
需注意的是所有编码均需要统一
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
由于中文字符在URL参数里面先被解析成了gb2312
如:
http://service.weibo.com/share/share.php?title=%E7%BA%B5%E8%A7%88%E6%B1%BD%E8%BD%A6%E8%A1%8C%E4%B8%9A%E6%9C%80%E6%96%B0%E8%B5%84%E8%AE%AF%EF%BC%8C%E9%A2%86%E7%95%A5%E5%A5%A5%E8%BF%AA%E7%A7%91%E6%8A%80%E9%AD%85%E5%8A%9B%E3
如果不设置成gb2312接收,直接接收必然会被转成UTF-8
所以设置
request.setCharacterEncoding("gb2312");
String title=request.getParameter("title")!=null?request.getParameter("title").trim():"";
此时title内容拿到的中文正常
还有一点需要注意的是:
现在在IE6以上版本URL要求比较严格
? 不能出现多次,得用gb2312转码后的字符代替%3F
其它特殊字符最后先都转一下码,不然有可能打不开网页。
分享到:
相关推荐
通过以上步骤,大部分情况下都可以解决JSP页面传参出现中文乱码的问题。然而,Web开发中的字符编码问题复杂多变,可能还需要根据具体环境和项目需求进行调试和调整。总之,理解和掌握字符编码原理,保持一致性是解决...
jsp 传参 servlet 接收中文乱码问题的解决方法 jsp 传参 servlet 接收中文乱码问题是一个经常遇到的问题,特别是在使用 Hibernate+Servlet 框架时。当我们在 jsp 页面传参到 servlet 时,中文字符经常会出现乱码...
### get方式传参中文乱码问题的解决方案 在Web开发中,经常遇到GET请求传递中文参数时出现乱码的问题。这种现象通常出现在不同编码格式之间的转换过程中,导致浏览器或者服务器端解析参数时出现问题。本文将深入...
在Web开发中,尤其是使用Java JSP技术时,我们可能会遇到URL中传递参数出现乱码的问题。这是因为不同的字符集编码方式可能导致字符在传输过程中无法正确解析。本文将详细介绍两种解决JSP页面URL参数乱码的方法,虽然...
jsp使用URL编码传递中文参数乱码问题
在开发Java Web应用程序时,尤其是使用JSP技术时,经常遇到的一个问题是中文字符在传递过程中出现乱码。这是因为字符编码不一致或者处理不当所导致的。本文将详细讲解如何解决JSP页面传参时出现的乱码问题。 首先,...
在开发Java Web应用程序时,尤其是使用Struts2框架与JSP进行交互时,可能会遇到URL传参中文乱码的问题。这个问题通常涉及到字符编码的设置,包括客户端请求编码、服务器接收编码以及应用程序内部处理编码的统一。...
通过上述方法,我们可以在Java Web应用中有效地解决页面传参中文乱码的问题。关键在于利用`URLEncoder`和`URLDecoder`对中文参数进行编码和解码,同时保持客户端和服务端编码的一致性。这种方式不仅简单易行,而且...
下面,我将详细介绍如何解决JSP向Servlet传参中文乱码的问题。 1. 确保项目文件编码统一 首先,要确保整个项目的文件编码是统一的。通常我们使用UTF-8编码,因为UTF-8编码支持几乎所有语言,包括中文字符。在JSP...
总之,`request`对象在J2EE开发中扮演着核心角色,处理中文乱码和URL传参是日常工作中常遇到的问题。了解和掌握这些知识点,将使你在Web开发中更加得心应手。通过不断的实践和学习,你将能够更好地应对各种复杂情况...
2. **参数传递乱码**:在表单提交或URL传参过程中,中文等非ASCII字符无法正确识别或解析。 #### 二、乱码产生的原因 1. **编码设置不一致**:JSP页面、客户端(浏览器)以及服务器端的编码设置如果不统一,则会...
1.传递参数: 代码如下: var pmt = ‘sensor=’+ encodeURI(encodeURI(sensor))... top.location.href = ‘jsp/print/diagnosticAnaPrint.jsp?’+pmt; 2.接收和解析参数 代码如下: //获取URL参数 function GetRequest()
代码如下:<?xml version=”1.0″ encoding=”UTF-8″ ?> <!DOCTYPE html PUBLIC “-//WAPFORUM//DTD XHTML ...%... charset=UTF-8″ pageEncoding=”UTF-8″%> <...@ page import=”java.net.*”%> <...
JSP struts2 url传参中文乱码解决办法 1.设置struts.xml 或是设置struts.properties(我自己没试过) struts.i18n.encoding=UTF-8 2.在web.xml添加编码过滤器 <filter>characterEncodingFilter <filter>org....
JSP页面中文参数传递是Web开发中非常常见且重要的知识点,尤其是在中日韩等使用非ASCII...通过上述方法的实施,可以有效解决在JSP页面中传递中文参数时遇到的乱码问题,确保Web应用的用户界面友好性和数据的准确传递。
在从oracle数据库中读取数据时出现乱码,但是通过pl/sql developer查询正常。...使用过滤器进行编码转换,request.setCharacterEncoding(gb2312),能够使传参时编码转换成中文,但是从数据库中读来的中文却显示为乱码。
request获取中文参数时可能出现乱码问题,需设置正确的编码。 8. **请求(request)生命周期与作用范围** - 请求开始到响应返回,只在当前请求范围内有效,服务器跳转也视为一次新的请求。 9. **响应对象...