Java读取linux系统中文文件名时候乱码
swany 2014-02-17 06:15:30 使用ava.io.File f = new java.io.File("/home/multiverse/Repository/PMEPGImport")的方式读取文件,如文件名称含有中文,则读取结果文件名称中文部分乱码,且显示文件不存在。
我试过设置:
System.setProperty("file.encoding","GBK");
System.setProperty("sun.jnu.encoding","GBK");
不起作用;
试过将文件名称进行如下转码:
String s0= new String(S.getBytes("UTF-8"),"GB2312");
String s1= new String(S.getBytes("GB2312"),"UTF-8");
String s2= new String(S.getBytes("ISO-8859-1"),"UTF-8");
String s3= new String(S.getBytes("UTF-8"),"ISO-8859-1");
String s4= new String(S.getBytes("ISO-8859-1"),"GB2312");
String s88= new String(S.getBytes("GBK"),"GB2312");
String s89= new String(S.getBytes("GB2312"),"GBK");
String s5= new String(S.getBytes("GB2312"),"ISO-8859-1");
String s6= new String(S.getBytes("GBK"),"UTF-8");
String s7= new String(S.getBytes("UTF-8"),"GBK");
String s8= new String(S.getBytes("GBK"),"ISO-8859-1");
String s9= new String(S.getBytes("ISO-8859-1"),"GBK");
都不起作用;
试过对tomcat的server.xml进行设置如下:
<Connector port=”8080″ protocol=”HTTP/1.1″ connectionTimeout=”20000″ redirectPort=”8443″ URIEncoding=”utf-8″ useBodyEncodingForURI=”true”/>
也不起作用;
还有试着将Linux的默认编码格式为中文,修改/etc/sysconfig/i18n里的编码格式,也是不起作用。
我上网问询,研究了1个多星期,实在是找不出解决办法,
今天部门老大提醒我从java代码new java.io.File()过程,或者file.listFiles()的过程,深度刨析其源码的方式寻找解决办法,我还没有做。
这种情况想必不少人都遇见过,都出来讨论下,分析下,或者直接给出解决办法。各位大虾们都出来帮帮小妹呀!