Url传递参数和接收参数时的中文乱码处理
来源:互联网 发布:深夜食堂美知留出场 编辑:程序博客网 时间:2024/05/19 00:36
今天一个朋友又问及url传递中文参数,jsp接收参数时的乱码处理问题。
一、问题如下:
Js提交代代码:
Var name = "老罗";
var url = "testList.jsp?userName="+name;
Jsp中接收参数代码:
String userName = request.getParameter("userName");
得到的userName结果成了“?”
二、我给他的解决办法如下:
Js提交代代码:
Var name = "老罗";
var url = "testList.jsp?userName="+name;
url=encodeURI(url);
url=encodeURI(url);
Jsp中接收参数代码:
String userName = request.getParameter("userName");
userName = java.net.URLDecoder.decode(userName ,"UTF-8");
得到的userName结果:“老罗”
在这里,为什么要在客户端对字符串重复编码两次呢,
因为第一次编码,参数内容便不带有多字节字符了,成了纯粹的 Ascii 字符串。
再编一次后,提交,接收时容器自动解一次。
然后,再在程序中实现一次 java.net.URLDecoder(***, "UTF-8")) 就可以得到想提交的参数的原值。
其实,一般情况下,
encodeURI使用的是 UTF-8 编码规则来编的.
如果 request.getParameter(paramName) 时,容器也按 UTF-8 解的话,是正确的. 根本无须在客户端进行二次的 encodeURI(...)
如果 request.getParameter(paramName),容器没有按 UTF-8 解的话, 结果只有一个,就是乱码!
容器按什么编码来解码,决定于 request.setCharacterEncoding(***) 或者 服务器程序配置.
在 jsp 程序中,能够 request.setCharacterEncoding("UTF-8"), 并且 修改服务器配置,让容器在解 GET 提交的参数时,使用 UTF-8.
客户端提交前不用二次编码, 接收时,也只要直接 request.getParameter(paramName) 即可
- Url传递参数和接收参数时的中文乱码处理
- url传递中文参数乱码的问题
- url 参数传递中文乱码
- url传递参数中文乱码
- url传递参数中文乱码
- js、URL传递含有中文参数时的乱码问题解决
- js、URL传递含有中文参数时的乱码问题解决
- JS通过URL传递参数时出现乱码的处理
- JS通过URL传递参数时出现乱码的处理
- struts2配置文件中url传递参数中文乱码处理
- struts2配置文件中url传递参数中文乱码处理
- 处理url参数中文乱码
- asp.net接收URL中文参数的乱码解决方案
- indy httpserver 接收URL包含中文参数乱码的问题
- spring mvc 框架URL接收中文参数的乱码解决方案
- SpringMVC Controller 接收页面传递的中文参数出现乱码
- SpringMVC Controller 接收页面传递的中文参数出现乱码
- js跳转url携带参数和传递中文乱码问题
- 3.29如何使一个程序清单视图初始显示时的尺寸恰好为所关联的对话框资源的大小?
- Perl/CGI脚本语言编程学习资源下载地址大全
- 定时群发短信
- 定时群发短信
- 同济大学软件学院院长谈择业——嵌入式系统方向
- Url传递参数和接收参数时的中文乱码处理
- 不能访问微软更新站点
- 解决问题 ORA-04063: package body "SYS.DBMS_LOGREP_UTIL" has errors
- 找出数组中出现次数最多的数
- SAP GUI 720 下载地址
- 虚拟机下Linux单击变双击问题的解决办法
- 使用Flex来控制摄像头拍照的例子
- 网站优化SEO之网站地图的使用
- 职业规划不可不读的19个案例故事