问题: java程序读取linux上服务器 目录和文件,如果目录或文件名称为中文时,会出现乱码。
解决方案:保持程序、服务器编码一致。例如UTF-8
1.首先网站页面采用 UTF-8 编码,
在JSP中配置
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
同时在扫描系统文件时,java 程序读取文件名称的方法设置编码为UTF-8。 (如果下面几步配置齐全了,这里无需设置,默认以系统编码读取)
2.Linux系统配置语言环境为UTF-8
其中Centos 修改/etc/sysconfig/i18n
debian 修改/etc/default/locale
LANG=zh_CN.UTF-8 或者 en_US.UTF-8
3.如果Tomcat 自启动,需要在启动时手动配置系统支持的语言和编码环境,否者无法生效
在 /etc/rc.local 设置 export LC_ALL=en_US.UTF-8
如果需要下载文件,文件名称中包含中文,在Server.xml 配置文件中的connector配置节中加入URIEncoding="UTF-8"
4.如果采用 Flashfxp 等sftp工具上传的文件,需要配置工具的传输编码为UTF-8
来源:oschina
链接:https://my.oschina.net/u/220491/blog/80668