国内最大的酷站演示中心!
这几天研究了一下jspwiki把网页存到硬盘上的代码,想出了一个解决的办法. jspwiki把文件名转换成%xx的格式是为了能在硬盘上存储各个国家语言的文件,
如果我们只在中文环境下使用,则没有必要进行这样的转换.
jspwiki里的pageprovider和attachmentprovider负责了上面的转换,
而这两个provider可以在jspwiki.properties里面设置,所以我们继承一下
jspwiki里提供的类,再在配置文件里设置一下,很容易就让jspwiki不进行文
件名转换了.
我是通过继承nativefilenameversioningfileprovider和basicattachmentprovider
类实现子类的.可惜basicattachmentprovider中负责文件名转换的方法是static的,我在
子类里没办法把它重载掉,这个问题已经向jspwiki的开发者提出修改意见了.现在page名
可以存为中文了,附件名还要等到jspwiki的basicattachmentprovider修改了以后才能
实现.
附件里是编译完的代码,把它拷贝到jspwiki的lib目录里,再在jspwiki.properties里设置
"jspwiki.pageprovider =net.sf.startemplate.nativefilenameversioningfileprovider"
就可以把page存为中文名的文件了.这个provider和已有的%xx形式的page不能正常工作,
需要把这些page的名称改成未编码的中文格式.
至于utf8编码的文件用notepad修改后会在最前面添加3个字符,那都是微软做的孽,不用微软的
或者基于微软的文本编辑器就行了.(微软为了识别unicode的编码,在文件最开始加了标识符,
而其他公司并不承认这个标准,所以才导致这些标识符会被显示出来)
浏览器对网址会转换成%xx形式后再向服务器,服务器收到以后也都有相应的逆向转换,这个应该
没有什么问题.
很高兴和你交流!!
以下是我的代码:两个provider和一个工具类
======= 2005-09-07 22:26:40 您在来信中写道:=======
> dengber,您好!
>
> 我从sf.net上面下载了你的startemplate,看看不错。
>
> 我最近正在将jspwiki部署到我公司上,作为一种工作日志、工作总结、技术文章的共享平台。有个问题想问你一下,不知道你是
否了解,如何让jspwiki里面用中文写的超级链接,所形成的实际文件名,可以成为中文编码呢?因为目前都会变成%xx%xx的形式
来表示中文。
>
> 我知道jspwiki是利用java写的,它的中文处理机制,完全就是java的机制,就是将所有编码,统一成utf-8编码。而windows200
0或以上的系统的默认编码,一般是unicode,这两者不太一样。我不知道你试过直接编辑jspwiki的数据文件没,我试过,发现只
能利用ultraedit之类的可以支持utf-8的编辑器,才可以成功编写,而如果利用windows自带的notepad来编辑的话,其文件头部
会自动被加上3个字节。
>
> 另外,当在浏览器里面,鼠标指向一个含中文字符的链接的时候,会被自动转换成可能试url所要求的表示形式,就是上述的两个
加了百分号的数字来表示一个汉字的方式。
>
> 所以我想,要想解决这个问题,是不是需要解决上述两个问题。
>
> 不知道你是否研究过这个,请不吝赐教。