tomcat下web项目乱码

汪兴 发布于 2014/05/23 17:04
阅读 1K+
收藏 0

我的系统运行环境是FreeNAS9.2(可以参考FreeBSD)、TOMCAT6、JAVA7,我在系统的一个目录下放了很多文件,文件名都是中文的,但是在tomcat下部署了一个web项目,web项目读取这些文件并把这些文件的文件名输出到一个文件,但是出现下图的乱码。但是我在系统里放几个本地文件,跑java本地程序(java test),这样输出到文件就不出现乱码,不知道有没有大神知道这个问题,求指导

加载中
0
Feng_Yu
Feng_Yu

骚年啊,资源文件名不要有中文啊,这可是常识啊

而且文件名不要有空格,不然容易悲剧

Feng_Yu
Feng_Yu
回复 @汪兴 : 有一个办法规避,就是上传的文件名更名为hash,实际上很多网站都这么做的,最终在页面上的url可以看到就是一个hash文件名,实际的文件名通过别的方式保存,下载的时候将文件改名即可。
汪兴
汪兴
没办法啊,资源文件是用户上传的,word文档这种肯定是有中文的呀
0
Feng_Yu
Feng_Yu

非要解决这些中文乱码问题的话,需要考虑一下服务器编码问题了。

检测一下服务器的编码,我怎么感觉不像是utf-8,而是posix(locale显示为C),否则应该显示为乱码,而不是问号。使用这个命令看一下: locale,检测一下变量,是不是UTF-8的字符编码。如果是的话,把你的终端字符集也改成utf-8编码,再ls列一下

其次,各大linux/unix发行版默认编码UTF-8,文件名和文本编码尽量全用UTF-8编码,不是的话转一下。

最后,如果访问的HTTP URI中有中文编码的话,应该在tomcat的server.xml配置文件中的connector配置段加上URIEncoding="UTF-8",来防止传递的URL中中文字符出现乱码。

差不多解决方案就是这样。由于中文编码遇到的问题会比较多,所以不建议文件名出现中文,更不要有路径中出现空格,不然会带来很多处理上的麻烦。

Feng_Yu
Feng_Yu
回复 @汪兴 : 是在没搞明白你说的是哪里乱码了,你又说程序运行没乱码,又说程序显示不对,有乱码。到底有没有乱码?有没有截图?有没有运行过程?提问信息要完整,要有相关的截图或日志,要有你的猜想以及做出的尝试。
汪兴
汪兴
我把locale改了,本来是C,改成了UTF-8,但这种情况只是ssh显示正常了,但是程序里还是不对,TOMCAT里UFT-8也加上了,Dfile也加上了,都没没用,但是java程序运行就 没乱码,很郁闷啊
0
南湖船老大
南湖船老大
不作死就不会死
0
L
Love_天
FreeNAS可以安装Tomcat么?
汪兴
汪兴
可以的
返回顶部
顶部