linux java读取中文文件乱码

本文介绍如何设置Linux系统的中文环境,包括修改系统默认语言为中文、安装中文支持包及调整Tomcat应用服务器的文件编码方式。

locale 查看系统默认语言

 

vi  /etc/sysconfig/i18n

 

LANG="zh_CN.UTF-8"

SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"

 

SYSFONT="latarcyrheb-sun16"

 

yum groupinstall chinese-support

然后重启机器

 

如果jsp里面out.println(System.getProperty("file.encoding"));发现不是utf-8

tomcat catalina.sh 加上 CATALINA_OPTS="-Dfile.encoding=UTF8"

### Java Linux 文件路径 中文字符 乱码 解决方案 对于Java程序在Linux环境下读取包含中文字符的文件路径时出现乱码的问题,可以采取多种方法来解决这个问题。 #### 设置JVM参数 一种有效的方法是在启动Java应用程序时通过命令行传递`-Dfile.encoding=UTF-8`参数给JVM。这会强制整个虚拟机使用指定的字符集处理字符串,从而避免因默认编码不同而导致的乱码现象[^1]。 ```bash java -Dfile.encoding=UTF-8 -jar your-application.jar ``` #### 修改系统属性 另一种方式是在代码内部修改系统的编码设置。可以在应用初始化阶段执行如下语句: ```java System.setProperty("sun.jnu.encoding", "UTF-8"); System.setProperty("file.encoding", "UTF-8"); ``` 这段代码的作用是显式地告诉操作系统以及Java运行环境应该采用何种编码格式解析文件名和其他文本数据[^3]。 #### 处理具体场景下的输入输出流 当涉及到具体的文件操作时,确保所有的InputStreamReader, OutputStreamWriter等类都指定了正确的字符集。例如: ```java try (BufferedReader reader = new BufferedReader( new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8))) { String line; while ((line = reader.readLine()) != null) { // Process the file content here... } } catch (IOException e) { throw new RuntimeException(e); } ``` 以上措施能够有效地防止由于平台间编码差异所引起的乱码问题,并且适用于大多数情况下的跨平台开发需求。 #### 验证服务器配置 确认Linux服务器上的区域和语言环境变量已正确设置为支持多字节字符的语言包,比如`zh_CN.UTF-8`。可以通过查看或调整`.bashrc`, `.profile`或其他shell配置文件中的相应部分实现这一点。此外,也可以临时更改当前终端会话的locale设置来进行测试验证: ```bash export LANG=zh_CN.UTF-8 ``` 这样做的目的是为了使所有基于该用户的进程都能继承这些环境变量值,进而减少潜在的兼容性障碍[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值