这次给
openfans
做网摘功能,主体程序倒是很快就写完了,另外要做个
IE
插件,却碰到了不少问题。
IE
插件其实很简单,就是用
js
获得页面的标题、
url
和选择的内容,然后通过弹出窗口,将其送到服务器。这里就有中文的问题了,开始使用
escape
,如
escape(title)
形式,
request.getParameter
碰到中文就为
null
,网上搜了一通,说是可以通过
java
编码搞定,但拿到就为
null
了,还怎么换编码?忙活了好几个小时,又是
alert
,又是
document.write
,看上去也没什么问题。不
escape
,直接在浏览器中输入带中文的
url
,拿到的不为
null
了,拿到后,通过
new String(str.getBytes("ISO-8859-1"), "UTF-8");
还真显示正常了。但用
window.open
又出乱码了。看到文章说还有
encodeURIComponent
方法可用,就试了下,把
escape
换成
encodeURIComponent
居然搞定了,服务端还是得用
new String(str.getBytes("ISO-8859-1"), "UTF-8")
进行处理。注意这里用的
tomcat
,它的默认编码就是
"ISO-8859-1"
,如果改了编码程序也得做相应的改动了。