开发者社区> 问答> 正文

tomcat下web项目乱码:报错

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

展开
收起
kun坤 2020-06-07 14:49:41 731 0
1 条回答
写回答
取消 提交回答
  • 骚年啊,资源文件名不要有中文啊,这可是常识啊

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

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

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

    检测一下服务器的编码,我怎么感觉不像是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中中文字符出现乱码。

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

    ######回复 @汪兴 : 是在没搞明白你说的是哪里乱码了,你又说程序运行没乱码,又说程序显示不对,有乱码。到底有没有乱码?有没有截图?有没有运行过程?提问信息要完整,要有相关的截图或日志,要有你的猜想以及做出的尝试。######我把locale改了,本来是C,改成了UTF-8,但这种情况只是ssh显示正常了,但是程序里还是不对,TOMCAT里UFT-8也加上了,Dfile也加上了,都没没用,但是java程序运行就 没乱码,很郁闷啊######不作死就不会死######FreeNAS可以安装Tomcat么?######可以的
    2020-06-08 11:17:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Web服务架构变迁与性能优化 立即下载
基于Web前端的可用性优化 立即下载
Web应用系统性能优化 立即下载