java 获取 linux服务器文件名称乱码的解决方案

问题: 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

你可能感兴趣的:(java,linux,编码,乱码)