Linux环境下解决通过Tomcat访问中文资源文件乱码问题

场景

最近遇到一个需求,需要访问带中文的资源文件(使用中文命名的)。
国标200-221号.pdf,前端直接在游览器访问这个地址时候出现404错误。在linux系统中,如果将项目部署在tomcat下,项目中包含中文名称文件资源。可能会报404找不到文件的错误。linux的编码格式是UTF-8,如果是直接将文件通过Xftp工具拖到服务器指定目录里面,此时文件是GBK格式(windows是GBK),就会出现文件名称乱码问题


20200916154423501.png

解决

在Linux中专门提供了一种工具convmv进行文件名编码的转换,可以将文件名从GBK转换成UTF-8编码,或者从UTF-8转换到GBK。

1.安装

http://www.j3e.de/linux/convmv/convmv-1.14.tar.gz
下载好了然后放进linux中解压命名 tar zxvf convmv-1.14.tar.gz

2 进入此目录 cd convmv-1.14/

执行 make install 命令 则安装成功。

3.convmv具体用法

convmv 编码转换命令

用法:convmv -f 源编码 -t 新编码 [选项] 文件名

-f enc 源编码
-t enc 新编码
-r 递归处理子文件夹
-i 交互文向转换
--list 显示所有可用编码
--nosmart 如果是utf8文件,忽略
--notest 直接转换不测试
--replace 文件相同直接替换
--unescape 可以做一下转义,比如把%20变成空格
--upper 全部转换成大写
--lower 全部转换成小定

使用

切换到需要转码的文件目录
执行命名:
convmv -f gbk -t utf-8 -r --notest pdf/

修改Tomcat 的server.xml里面设置的字符编码

URIEncoding="UTF-8

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

原文链接:https://blog.csdn.net/weixin_42694286/article/details/108623402

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容