当前位置: 技术问答>java相关
用JSP读linux服务器上的中文文件名的问题
来源: 互联网 发布时间:2015-11-03
本文导语: 我jsp读linux服务器上的中文文件名时出错,读出来是SMTP???????¤????.doc,而用FTP却没问题,我试了用String.getBytes("ISO-8859-1");转换也没有用。 | 哦,我想应该是resin的问题,我碰见过很多情况,如...
我jsp读linux服务器上的中文文件名时出错,读出来是SMTP???????¤????.doc,而用FTP却没问题,我试了用String.getBytes("ISO-8859-1");转换也没有用。
|
哦,我想应该是resin的问题,我碰见过很多情况,如果服务器不是resin的话,显示是正常的,但是一用到resin上面,就显示为乱码啦
好像你这样就可以解决啦:
(2002-11-13 16:42:56) Redhat
那试试这样:
java.net.URLEncoder.encode($str);
或者这样处理一下中文再显示出来,看看,我不知道可不可解决啊。
java.net.URLDecoder.encode($str)
好像你这样就可以解决啦:
(2002-11-13 16:42:56) Redhat
那试试这样:
java.net.URLEncoder.encode($str);
或者这样处理一下中文再显示出来,看看,我不知道可不可解决啊。
java.net.URLDecoder.encode($str)
|
1.很有可能是你的font设置的有问题,否则不应该是问号,如果是内码的问题应该是乱码(如果之前只做了一次转换的话)
2.如果你确认不是font的问题,可以作如下试验,先写一个类,在获取文件名的时候做如下转换(其中x[i]是文件名,getBytes()表示直接取机器原始本地字节,没有内码转换,gbk为最终目标内码)我做了一个BIG5的文件名,在jdk1.2上成功读出
了文件名(不是乱码)
file_name = new String(x[i].getBytes(),"GBK");
2.如果你确认不是font的问题,可以作如下试验,先写一个类,在获取文件名的时候做如下转换(其中x[i]是文件名,getBytes()表示直接取机器原始本地字节,没有内码转换,gbk为最终目标内码)我做了一个BIG5的文件名,在jdk1.2上成功读出
了文件名(不是乱码)
file_name = new String(x[i].getBytes(),"GBK");
|
up
|
new String(str.getBytes("ISO-8859-1"),"gb2312");