URL中有中文,server就找了这个URL了??

02-10-26 kid

我找了很久,也没有解决办法,请问哪位大哥能帮帮忙,

说说你们的解决办法,或者给点提示,先谢啦!

banq
2002-10-27 17:41

问题不明白

fuck
2002-10-27 21:24

找了应该是"找不到了"?

URL不支持双字节码的分解.

要定位一个资源,有多程naming服务同时合作完成的.

http://host:port/dir/filename由PNS,DNS,FS等naming服务分别分解它的协议,主机,端口,文件系统,然后去定位,URL请求方发送的URL要符合URL规范,然后接收方会转译成相应的编码的.不要以为参数可以是中文的,URL本身也可以是中文的.

http://host/我的图片.jpg这样的URL,文件命名系统是不能定位的.必须转为规范的URL方式,即javascript中的escape或java中的java.net.URLEncpder.encode();方法编码一下.

kid
2002-10-27 21:28

我用javazoom的download4j实现文件下载。

访问:

http://127.0.0.1:8080/download/报表.xls

就出现http404找不到地址的错误。

但访问另一个文件:

http://127.0.0.1:8080/download/test.xls

时就可以正常下载。

很多人都遇到了类似的问题,例如访问一个中文名称的页面。

用resin2.1.4和tomcat4.0.5都试过,但解决不了。

问题是怎样才能使这些server能识别含有中文的URL??

谢谢指点!!

fuck
2002-10-27 21:36

我已经说了啊,

在程序中用java.net.URLEncoder.encode();

比如Striing url = "http://host/中文.jpg";

url = java.net.URLEncoder.encode(url);

out.println(url);

如果是HTML页面,这样写:

<a href="javascript:location.href=\"escape('http://host/中文.jpg')\"">中文</a>

这样URL看起来就会象http://host/%A%D%E%C.jpg这样就能访问了.

3Go 1 2 3 下一页