問題: java程序讀取linux上服務器 目錄和文件,若是目錄或文件名稱爲中文時,會出現亂碼。html
解決方案:保持程序、服務器編碼一致。例如UTF-8java
1.首先網站頁面採用 UTF-8 編碼,linux
在JSP中配置服務器
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>工具
同時在掃描系統文件時,java 程序讀取文件名稱的方法設置編碼爲UTF-8。 (若是下面幾步配置齊全了,這裏無需設置,默認以系統編碼讀取)網站
2.Linux系統配置語言環境爲UTF-8編碼
其中Centos 修改/etc/sysconfig/i18nspa
debian 修改/etc/default/localexml
LANG=zh_CN.UTF-8 或者 en_US.UTF-8htm
3.若是Tomcat 自啓動,須要在啓動時手動配置系統支持的語言和編碼環境,否者沒法生效
在 /etc/rc.local 設置 export LC_ALL=en_US.UTF-8
若是須要下載文件,文件名稱中包含中文,在Server.xml 配置文件中的connector配置節中加入URIEncoding="UTF-8"
4.若是採用 Flashfxp 等sftp工具上傳的文件,須要配置工具的傳輸編碼爲UTF-8