[转]JSP或servlet中(以及上传下载文件)中文乱码或不显示的解决方案
JSP或servlet中中文乱码的解决方案:
1.以POST请求方式:
在获取请求参数之前设置:
request.setCharacterEncoding("utf-8");
设置输出编码:
response.setContentType("text/html;charset=utf-8");
或者<%@ page contentType="text/html;charset=utf-8" %>
2.以GET方式请求的
以GET方式请求的设置setCharacterEncoding是无效的。
我们需要在获取参数后,对每一个参数进行单独转码。
String name =request.getParameter("name");
name=new String(name.getBytes(),"utf-8");
3.在数据库中的乱码:
设置数据库的编码为utf-8
4.使用过滤器解决中文乱码问题:
-----------------------------------------------------------
5.上传与下载的乱码或中文不显示问题解决:
JSP或Servlet上传文件中文名乱码解决:
String fileN=item.getName();
//String fileName=new String(fileN.getBytes("ISO-8859-1"),"utf-8");
String fileName=new String(fileN.getBytes(),"utf-8");//对提取出来的文件名进行UTF-8编码,
以上可以解决上传文件名乱码和浏览器显示以及存入数据库都显示正常。
解决下载文件时中文不显示的问题:
response.setContentType("application/x-msdownload");
// response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename="+
new String(fileName.getBytes("utf-8"),"ISO-8859-1"));
原因分析,由于HTTP头部的默认编码为ISO-8859-1而我们上传文件于下载文件过程中,提取到的文件名都要通过HTTP头部。
所以我们需要在上传的时候对提取到的文件名进行转码为UTF-8,然后在下载时我们也要进行反向转码为ISO-8859-1.
[转]JSP或servlet中(以及上传下载文件)中文乱码或不显示的解决方案的更多相关文章
- Portal for ArcGIS上传shp文件中文乱码可能情况
环境: windows Server 2008:Portal for ArcGIS 10.2:ArcGIS for Server 10.2:PostgreSQL 9.2:ArcGIS for Desk ...
- WebService中实现上传下载文件
不多说,直接看代码: /*上传文件的WebService*/ using System; using System.Collections; using System.Collections.Gene ...
- securecrt中使用上传下载sftp
securecrt中使用上传下载sftp SecureCRT这个工具自带了一个FTP,方便我们上传和下载,而且做的比较人性化,由于其基本命令和linux中基本命令大都相似,熟悉LINUX人能很容易 ...
- 在windows中使用PuTTy上传下载文件和目录
打开windows的cmd,使用cd命令切换到PuTTy安装目录 C:\Users\NUC>cd C:\Program Files\PuTTY 在cmd中使用pscp命令上传下载文件 windo ...
- Javaweb学习笔记——上传下载文件
一.前言 在Javaweb中,上传下载是经常用到的功能,对于文件上传,浏览器在上传的过程中是以流的过程将文件传给服务器,一般都是使用commons-fileupload这个包实现上传功能,因为comm ...
- rz和sz上传下载文件工具lrzsz
######################### rz和sz上传下载文件工具lrzsz ####################################################### ...
- linux上很方便的上传下载文件工具rz和sz
linux上很方便的上传下载文件工具rz和sz(本文适合linux入门的朋友) ##########################################################&l ...
- linux下常用FTP命令 上传下载文件【转】
1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...
- C#实现http协议支持上传下载文件的GET、POST请求
C#实现http协议支持上传下载文件的GET.POST请求using System; using System.Collections.Generic; using System.Text; usin ...
随机推荐
- Solaris 系统命令使用说明
1. 查看进程 -- pgreproot@UA4300D-spa:~# pgrep fmd133095root@UA4300D-spa:~# pgrep -l fmd133095 fmdroot@ ...
- python并发编程之gevent协程(四)
协程的含义就不再提,在py2和py3的早期版本中,python协程的主流实现方法是使用gevent模块.由于协程对于操作系统是无感知的,所以其切换需要程序员自己去完成. 系列文章 python并发编程 ...
- module 'pytest' has no attribute 'allure'问题解决
安装allure后执行命令后报错module 'pytest' has no attribute 'allure' C:\Users\Desktop\xin>pytest -s -q --all ...
- WebBrowser中运行js
HtmlElement script = wf.WebBrowser.Document.CreateElement("script"); script.SetAttribute(& ...
- 72.Edit Distance---dp
题目链接:https://leetcode.com/problems/edit-distance/description/ 题目大意:找出两个字符串之间的编辑距离(每次变化都只消耗一步). 法一(借鉴 ...
- Python 类的名称空间和组合
一.Python类的名称空间 class Student(object): School = '北京大学' def __init__(self): pass stu1 = Student() stu1 ...
- PHP缓存加速插件 XCache 、 ZendOpcache 安装
PHP缓存原理 当客户端请求一个PHP程序时,服务器的PHP引擎会解析该PHP程序,并将其编译为特定的操作码(OperateCode,简称opcode)文件,该文件是PHP代码的一种二进制表示方式.默 ...
- [ python ] 初始面向对象
首先,通过之前学习的函数编写一个 人狗大战 的例子. 分析下这个需求,人 狗 大战 三个事情.角色:人.狗动作:狗咬人,人打狗 先创建人和狗两个角色: def person(name, hp, ag ...
- tomcat报错HTTP Status 405 - HTTP method GET is not supported by this URL
servlet提交表单,结果出错. 出现HTTP Status 405 - HTTP method GET is not supported by this URL 原因是:1.继承自Httpserv ...
- POJ 2349 Arctic Network(最小生成树+求第k大边)
题目链接:http://poj.org/problem?id=2349 题目大意:有n个前哨,和s个卫星通讯装置,任何两个装了卫星通讯装置的前哨都可以通过卫星进行通信,而不管他们的位置. 否则,只有两 ...