java 无法访问Linux下中文目录路径和中文文件名

1、首先说下linux下的文件分隔符问题,window下是\,

  如c:\tomcat\abc.txt这样可以,但linux下都是/,如/u01/tomcat/abc.txt。如果路径不对,也会找不到文件!

 

2、 String url="/u01/tomcat/中文.txt "   或者String url="/u01/tomcat/中文/烦死人.txt "

 

如果路径中带中文的文件夹,或名字,用new File(url);用函数file.exists()会返回false,

刚开始我还以为我的路径要转编码,于是试了各种转编码,iso-8859-1,utf-8,gbk,gb2312。。。都转了,都没用。

 

我代码是在win上编译的,在linux下运行的,发现在window下用System.getProperty("file.encoding")得到的是gbk,但在linux下是utf-8。在代码中转编码看来是没用的了,于是想到改操作系统的文件系统编码,于是:

vi /etc/sysconfig/i18n文件,改为LANG="zh_CN.GBK",我试了,改为utf-8也没用,中文乱码,只有改为gbk,改完后再不重启的情况下,使配置生效:source /etc/sysconfig/i18n,结果就可以了,可以正常操作了!

其实这个操作都是临时的,编码也只是零时改了,我用SecureCRT工具,退出会话,再进,编码又回到以前去了,,重启了,感觉好像也没效果,于是,没办法, vi /etc/profile,在文件末尾加上

export LANG="zh_CN.GBK"

export LC_ALL="zh_CN.GBK"

重新启动系统

reboot  linux 

一切都OK了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值