Linux服务器下,java程序上传文件,中文名乱码或显示问号的解决办法

问题情境

  在Linux系统安装部署好java项目后,使用tomcat启动项目。Linux服务器上已经安装了“中文语言包”,locale 命令查看Linux服务器语言时,已经显示zh_CN.UTF-8。

问题

  系统启动后上传文件成功,但是下载时,非中文名文件可以正常下载和打开,中文名文件上传成功但是系统保存的文件的名称都是问号,导致页面不能正常进行下载。

问题解决办法

  找了一圈资料,把centos的字符集、tomcat中server.xml中的“URIEncoding”都更改为UTF-8之后还是不成功。最终在tomcat/bin/catalina.sh文件中增加了“export LANG=zh_CN.UTF-8”,成功解决了问题。

遗留问题

  描述:wps创建的docx,xlsx文档,在上面的修改后可以进行中文名文件的上传和下载,但是下载后的文件不能用microSoft word打开(2010),但是却可以用wps打开。

  矛盾点:wps创建的docx,xlsx文档,上传前的文档是可以用microSoft word(2010)打开的。

遗留问题截图

  1、点击下载的文件(docx):

   2、点击确定:

  

  3、点击:是。则能打开文档

  4、有一些docx文档用microsoft word 打开时除了上面的提示,还会多一步提示:这时就需要下载转换器或者点击打开按钮查看文件。但是docx文档和前面3步提示就能打开的文档,没有发现什么区别。这也是比较疑惑的地方???

问题解决办法的原文出处:https://blog.csdn.net/u010045996/article/details/80808842

原文地址:https://www.cnblogs.com/wmxblog/p/14061358.html