`
zys08
  • 浏览: 143102 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

解决传递接收参数是中文的乱码问题

    博客分类:
  • HTML
 
阅读更多

今天解决了一个头疼的bug,是一段jsp写的代码,其中使用到了java.net.URLEncoder.encode()对要传递的中文进行编码。可是接收到的字符串却是乱码。最令人抓狂的就是这段代码在有的机器上运行正常,可是在某些机器上死活也不能正常运行。因为对jsp和网页都不是很熟所以查了很久才发现原因。

最后发现是这段代码没有规范的使用java.net.URLEncoder,虽然使用了java.net.URLEncoder.encode()对要传递的中文进行编码,可是接收页面接收时没有使用java.net.URLEncoder.decode()进行解码。导致在有的机器上运行正常,而有的就出错。

 

下面贴一下解决这个问题参考的文章:

使用java.net.URLEncoder.encode()可以对要传递的中文进行编码

a.在传参数之前先把参数进行转码:java.net.URLEncoder.encode(param);
取值时用语句java.net.URLDecoder.decode(param);再转回中文
b.在你的Tomcat目录-->conf目录-->server.xml里找出这段:
<Connector
port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
<!--在里边加上这个参数-->
URIEncoding="gb2312"
/>

 

例如:
<%@ page contentType="text/html;charset=gb2312" %>

<a href="ds.jsp?url=<%=java.net.URLEncoder.encode("编码的是这里","GB2312")%>">点击这里</a>


<%
if(request.getParameter("url")!=null)
{

str=request.getParameter("url");
str=java.net.URLDecoder.decode(str,"GB2312");
str=new String(str.getBytes("ISO-8859-1"));
out.print(str);
}

%>

若,字符编码为utf-8也可以实现.或者在此段代码中,不写出字符编码也可以(只写一个参数)。

 

分享到:
评论

相关推荐

    extjs 前后台交互参数出现中文乱码问题的解决方法

    在使用myeclipse过程中,我使用ajax同步请求传递参数到后台却出现中文乱码,这是我解决问题的代码,希望对您有所帮助

    解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题

    下面小编就为大家分享一篇解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    ajax中文参数乱码问题解决方法

    主要解决在ajax中中文参数传递过程中,服务器接收到中文乱码的问题

    Ajax传递中文参数到后台乱码的有效解决方法

    使用Ajax传递中文参数,如果不对参数进行处理的话,传到后台会变成乱码,经测试可以使用如下方法 这里是以jquery.autocomplete插件中获取输入框中的数据传到后台为例: 注意要对中文使用encodeURI编码两次 代码如下:...

    url地址传参中文乱码处理

    在接收参数后,使用java.net.URLDecoder.decode("xxxx",“utf-8")将16进制字符转为中文。这种方式需要注意的是,在使用encode转码后,会出现特殊字符,这时候,就需要将特殊字符替换为相应的16进制。 在传参前转码...

    解决Flex 中文乱码

    as3里的中文默认是utf16 而在服务器端参数的传递与接收默认是utf8格式

    asp.net乱码解决方法

    对链接中的参数值进行gb2312的编码,这种方法,对方不用进行任何解码操作,直接接收参数则不会出现乱码。  一般提到最多的也就上面4种方法,其它的也跟这些大同小异。仔细分析后,觉得还是第4种方法最适合解决...

    .Net获取URL中文参数值的乱码问题解决方法总结

    本文总结分析了.Net获取URL中文参数值的乱码问题解决方法。分享给大家供大家参考,具体如下: 解决方法: 1.设置web.config文件 2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。 string ...

    详解如何解决SSM框架前台传参数到后台乱码的问题

    主要介绍了详解如何解决SSM框架前台传参数到后台乱码的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    在页面上用action传递参数到后台出现乱码的解决方法

    页面上用jquery ajax 代码如下:function createQS(name){ var value = encodeURI(name); var queryString = {key:value}; return queryString;} //检索姓名方法function jiansuoByName(k,name){ if (name == ”)...

    unity3d网页之间传递参数实例教程

    这是我弄了好几天得出的一点经验,希望对其他人能有所借鉴,首先从一个网页给unity网页传参数,然后再传给unity,对于做网页游戏大有裨益

    asp.net URL中包含中文参数造成乱码的解决方法

    一开始,被这个问题也搞得头大,在google了一把后,总算是把问题给搞清楚了,其实只要这个链接地址不经过任何编码传递是不会有问题的。但就是加到了这个功能块后,再点击,虽然这个时候在IE地址栏里显示的还是”...

    JS传递参数网络编解码

    通过JS传递参数时,如果参数带有.或其它特殊字符,需要进行编码转义下,否则在网络传输时出现乱码,导致传递失败或即使传递成功接收后也无法使用的现象。

    jQuery Ajax传值到Servlet出现乱码问题的解决方法

    最近在学jquery ui,在做一个小功能的时候需要将前台的值获取到,通过Ajax传递给Servlet,然后再在返回数据结果,但是在Servlet接受参数的时候,通过后台打印,发现接受乱码,代码示例如下: public void doGet...

    Java后端HttpClient Post提交文件流 及服务端接收文件流

    HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。

    易语言 茶凉专用模块

    参数 传递参数, 整数型, 可空 .子程序 打开网页, 逻辑型, 公开, 打开指定网址(成功返回真,失败返回假) .参数 网址, 文本型, , 欲打开的网页地址 .子程序 弹出光驱, 逻辑型, 公开, 弹出光驱门。 mciSendString .子...

    web开发中实用的js技巧

    设置页面的编码格式(页面参数传递出现乱码时) 刷新重复提交问题--提交后跳转到当前页面 单击图片,弹出新js窗体 js提交页面 图片边框border=0 接收框- 边缘空白样式 编码转换 在JS中使用COOKIE 设置cookies时间,自己...

    基于SSM架构实现的大型分布式购物网站-B2C项目源码+项目说明.zip

    接收Controller传递过来的参数,一个文件MultiPartFile对象。把文件上传到ftp服务器。生成一个新的文件。 使用map实现,Map中的数据应该包含error。 ##Controller 接收页面传递过来的图片。调用service上传到图片...

    AVR辅助开发工具2.1.1

    修正了上一版本中出现的串口接收到汉字数据时,有时会出现乱码的BUG; 修正了上一版中出现的有时生不成延时程序的BUG; LCD显示器新增支持(LCD4004、LCD3310(PCD8544)); 增加了对USB器件CH375的读U盘部分支持...

    PHP入门到精通

    20.4解决数据库乱码问题 第3篇 高级应用 PHP网络开发(教学录像:42分33秒) 21.1电子邮件的原理 21.2系统的配置需求(SMTP和POP3服务器安装配置) 21.3应用PHP发送和接收电子邮件 PHP与XML技术(教学录像:31分17秒...

Global site tag (gtag.js) - Google Analytics