tomcat处理中文文件名的访问(乱码)

解决问题的核心在于修改Tomcat的配置,在Server.xml文件中添加一个名为URIEncoding的属性,它用于对HTTP请求中的get方法传过来的URL进行编码。Tomcat内置的对于get协议中的URL编码是ISO-8859-1,这个字符集不能直接支持中文等双字节的信息,而中文文件的下载链接恰恰是通过get协议进行的。

打开$tomcat安装目录$/config/server.xml文件,在其中找到如下代码:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

这段代码规定了Tomcat监听HTTP请求的端口号等信息,在这里添加一个属性:URIEncoding,值为UTF-8,即可让Tomcat以UTF-8的编码处理get请求:

<Connector port="8080" protocol="HTTP/1.1"
URIEncoding="utf-8"
connectionTimeout="20000"
redirectPort="8443" />

在Web应用程序中 如果调用response.sendRedirect()方法重定向到中文文件名的页面 需要如下的方式调用

response.secdRedirect(java.net.URLEncoder.encode("员工信息.html","UTF-8"));
时间: 2024-08-25 20:56:59

tomcat处理中文文件名的访问(乱码)的相关文章

让Tomcat支持中文文件名

--参考链接:http://blog.chinaunix.net/uid-26284395-id-3044132.html 解决问题的核心在于修改Tomcat的配置,在Server.xml文件中添加一个名为URIEncoding的属性,它用于对HTTP请求中的get方法传过来的URL进行编码.Tomcat内置的对于get协议中的URL编码是ISO-8859-1,这个字符集不能直接支持中文等双字节的信息,而中文文件的下载链接恰恰是通过get协议进行的. 打开$tomcat安装目录$/config/

tomcat支持中文文件名下载

Tomcat是Java开发者使用得较多的一个Web服务器,因为它占用资源小,运行速度快等特点,深受Java Web程序员的喜爱.不过,在使用中,由于Java中的中文问题的存在,如果不经过配置,在WEB程序中,不能直接支持具有中文文件名的文件的下载,这为Java Web程序的开发带来一定的不便.本文拟介绍一种手段,解决这个问题. 解决问题的核心在于修改Tomcat的配置,在Server.xml文件中添加一个名为URIEncoding的属性,它用于对HTTP请求中的get方法传过来的URL进行编码.

php生成的中文文件名会变成乱码,应该这样解决

现在php有很多类库,会生成文件,比如生成zip文件,生成二维码等等.这些类库用起来很爽,但是一旦生成带有中文的文件名,极有可能出现乱码. 问题:生成的中文文件名会变成乱码 解决:使用函数:iconv().rename() 生成文件名时,直接生成英文名,比如:a.zip.c.zip等等.然后,使用php的移动文件的函数rename即可, rename('a.zip',iconv('UTF-8', 'GB2312//IGNORE', '中文a.zip')); ignore的意思是忽略转换时的错误,

29. 在Linux上使用unzip解压以默认编码解压,中文文件名会出现乱码

解决办法: 下载p7zip-9.13-1.el5.rf.x86_64.rpm和p7zip-plugins-9.13-1.el5.rf.x86_64.rpm包 用以下方法安装后,使用7z x filename.zip,解压即可解决乱码问题. rpm -ivh p7zip-9.13-1.el5.rf.x86_64.rpm rpm -ivh p7zip-plugins-9.13-1.el5.rf.x86_64.rpm 安装包下载地址:http://dag.wieers.com/rpm/packages

Ubuntu下解决解压zip文件中文文件名乱码问题

在Ubuntu下解压Windows下压缩的zip文件时,会出现解压出的带中文文件名的文件名乱码,这是因为Ubuntu和Windows默认的编码不同,Ubuntu下默认的编码是UTF-8,而Windows下默认的编码是GBK.对于这个问题,主要有以下三种解决方法: 一.命令行指定解压字符集 在Ubuntu下解压来源于Windows的zip文件,中文文件名会出现乱码问题. 出现这个问题的原因是:Windows和Ubuntu使用的默认编码不相同,而且zip文件自身却不带有任何标识其编码的信息.解决方案

解决NTKO Office中文文件名保存到服务器时出现乱码的问题

再使用NTKO office控件时,在ntko往服务器提交文件时,中文文件名会出现乱码的问题! 其实解决这个问题可以换一种思路,在ntko往服务器提交文件时英文肯定是不会出现乱码的问题的! 那么想办法把中文文件名转换成英文放到隐藏域里,然后提交到服务器时再把隐藏域的英文转换成中文就没有问题了! 接下来就简单了 把中文名进行base64编码存到隐藏域 然后服务器获取隐藏域的值,再用base64解码就能得到正确的中文文件名了!附Base64简单编码解码 1 public string EncodeB

CentOS 7 支持中文文件名显示(未实现)

版本:CentOS 7 1908 参考文档: https://jingyan.baidu.com/article/aa6a2c14a00ec00d4d19c446.html https://www.cnblogs.com/sxdcgaq8080/p/10076459.html#commentform https://www.cnblogs.com/ToBeExpert/p/9716917.html 根据以上文档,总结出以下几点是必须要满足的设置. 1.确认是否安装中文语言包 执行命令:local

通过freemarker出word的技术解决方案_通过点击一个按钮临时实现生成一个word,解决出word时中文文件名乱码问题,解决打开出word时打开的word出现问题的问题,出图片,解决动态列表

 通过freemarker制作word比较简单 步骤:制作word模板.制作方式是:将模板word保存成为xml----在xml的word模板中添加相应的标记----将xml的word文件的后缀名改成ftl文件 详细步骤如下: 模板制作(将要动态显示的数据打上标记,这个标记是freemarker中的EL标记,要注意的是,要控制值为空的情况,下面${(site.wzmc)?default("")}标识当网站名称为空的时候显示空值,如果这里如果不做控制,在实际项目中会显示错误!) 另外

关于Tomcat的点点滴滴(体系架构、处理http请求的过程、安装和配置、目录结构、设置压缩和对中文文件名的支持、以及Catalina这个名字的由来……等)

总结Tomcat的体系架构.处理http请求的过程.安装和配置.目录结构.设置压缩和对中文文件名的支持.以及Catalina这个名字的由来--等. Tomcat和JVM: 一个Tomcat只会启动一个JVM,所有webapps公用一个JVM进程,所以System.exit()会导致影响同个Tomcat中的其他应用.Tomcat通过调用配置的JDK或JRE来启动JVM. 体系结构: Server:A Server element represents the entire Catalina ser