get方式中文乱码问题
<a target="_blank" href="ftpFileAction!downloadFile.action?filename=测试.xml">点击下载</a>
如果当前页面编码是utf-8.
这里是main.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
以及head头
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
并且main.jsp本身的文件编码是utf-8.
如果是post方式,Servlet后台设置request.setCharacterEncoding('utf-8')后一定得到正确中文。
但对于get方式,get方式提交参数若包含中文,
在我本机测试,ie下提交的使用iso-8859-1转码gbk可得到正常中文。
filename=new String(filename.getBytes("ISO-8859-1"),"gbk");
在firefox下提交的参数在Servlet中使用iso-8859-1转码utf-8可得到正常中文。
filename=new String(filename.getBytes("ISO-8859-1"),"utf-8");
一定要转码的原因是对于get方式提交的参数,tomcat默认不会使用request.setCharacterEncoding的编码方式转码,而是使用ISO-8859-1。
要保证各浏览器兼容性,
可以在get方式提交参数时,把参数进行转码。
encodeURI(适合编码整个URI)和encodeURIComponent(适合编码URI的一部分参数)
js脚本:
filename=encodeURIComponent('测试.xml');
'<a target="_blank" href="ftpFileAction!downloadFile.action?filename='+filename+'">点击下载</a>'
注明:
encodeURI, encodeURIComponent 是 UTF-8 的
escape 是 Unicode 的
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
get方式中文乱码问题的更多相关文章
- Get提交方式中文乱码
Get提交方式中文乱码 今天在servlet使用中,在Get方法中获取提交的中文参数,发现是乱码,我用的是Tomcat7. 在Tomcat9中: get方式的参数是放在请求头中,而Tomcat9对请求 ...
- 【The Most Important】浅谈JSP表单Post方式中文乱码问题
首先祝大家鸡年吉祥!在这里我要说下这两天里这个问题困扰着我,大过年的心情都被烦扰的不好了,所以我带着兴奋的心情来赶快完成这篇博客,解决大家的问题.我的问题是post方式传递表单数据,Tomcat服务器 ...
- 【转】JavaWeb编码之get方式中文乱码问题
一.现象描述 以get方式提交含中文表单,后台接收为乱码: <form action="admin/User/searchUser.do" method="get& ...
- get方式请求会出现中文乱码。post方式不会。
get方式请求会出现中文乱码.post方式不会. 如果是要解决get方式中文乱码问题,就需要做一个拦截器,或者在web.xml做一个get请求的配置 来自为知笔记(Wiz)
- 解决servlet中get方式中中文乱码问题(二):装饰者模式使用
注意,这里是针对Tomcat容器中get方式提交的servlet中获得参数,参数中有中文的时候乱码的问题: 之前我已经讲过,Tomcat8.0及以上URIEncoding都是utf-8的默认编码,不会 ...
- Java Web开发 之小张老师总结中文乱码解决方案
中文乱码:在以后学习过程中全部采用UTF-8 1.文件的乱码 1.1.项目文本文件默认编码: [右击项目]->[Properties]->[Resource]->[Te ...
- request、response 中文乱码问题与解决方式
request乱码指的是:浏览器向服务器发送的请求参数中包含中文字符,服务器获取到的请求参数的值是乱码: response乱码指的是:服务器向浏览器发送的数据包含中文字符,浏览器中显示的是乱码: ...
- 关于中文乱码的解决方法(URL方式)
假设keyWord ='阳光'; url="play.jsp? keyWord ="+ keyWord 若按照上述的地址直接访问,则中文会变成乱码.必须使用encodeURI()进 ...
- JQuery和JSON方式参数传递并处理JAVAWEB中文乱码问题
本文主要讲springMVC中视图和控制器之间常用的两种传递参数的方式: 1.JQuery 2.JSON 一.JQuery方式 思路:单击按钮后,触发JQuery事件,而提交整个表单 JSP中 < ...
随机推荐
- mvc 解决StyleBundle中 图片绝对路径 装换成相对路径的问题 CssRewriteUrlTransform
问题 解决办法
- Types of Binary Tree
Complete Binary Tree According to wiki, A complete binary tree is a binary tree in which every level ...
- HDU1506(单调栈或者DP) 分类: 数据结构 2015-07-07 23:23 2人阅读 评论(0) 收藏
Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...
- devStack
1,devstack shell 脚本开源官网 http://devstack.org/ 脚本功能快速搭建 OpenStack 的运行和开发环境 [Note tips by Ruiy devstack ...
- python手记(44)
#!/usr/bin/env python # -*- coding: utf-8 -*- #http://blog.csdn.net/myhaspl #code:myhaspl@qq.com imp ...
- cmd用到的基本操作
dir #显示当前目录中的文件和子目录 dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件 a = all dir c: /a:d #显示 C 盘当前目录中的目录 d = direc ...
- MySQL Workbench导出数据库
步骤: 1. 打开mysql workbench,进入需要导出的数据库,点击左侧栏的[Management]tab键. 2. 点选要输出的数据库 点击[Data Export] 选在要输出的数据库 选 ...
- quick-cocos2d-x android返回键监听并实现原生退出对话框
这两天最终闲了一下,就顺手又把quick捡起来又学了学,一直都认为quick比cocos2dx那套lua绑定要方便很多,今天试了下android返回键的监听,还是挺好弄的,所以就有了这篇. 首先说明一 ...
- 安卓开发之非常好用的AndroidOne框架DownloadManager
AndroidOne框架是采用MVC模式,集成了Android主流开源技术及组件,是一款极速且简单高效开发框架,整个项目包含两个部分AndroidOne,oneCore AndroidOne为演示项目 ...
- UINavigationController 和 UITabBarController
UINavigationController当设置根控制器的时候,意思就是把根控制器压入栈内,当我们push的时候,我们把下一个控制器压入栈内,当我们pop的时候把上面的控制器的内存释放 UITa ...