Opera URL encode bug
2007.04.1316:15
[ Javascript/DOM ] [ Misc/Personal ]
瀚海用 Opera 回复帖子,如果标题有中文会变乱码,发表文章和同主题阅读就没有问题,非常恼人,不知怎么回事。今天研究了一下,发现似乎是 Opera 的 bug:
- Opera 似乎会通过 href 中是否有冒号(:)来选择不同的 URL encode 方式,没有冒号的使用当前页面编码,有冒号的使用 UTF8 编码。BBS 回复文章的时候会在标题前面加一个“Re: ”,所以出了问题。
- 取消了
工具-> 首选项 -> 用 UTF-8 给国际语言网址编码复选框,问题依旧。(这个选项是不是干这个事的?)
bug 演示页面在此,鼠标划过两个不同的 link,注意状态栏,会发现两个 URL 采用的 encode 方式不同,而其他浏览器正常。记得以前 Opera 好像不会这样,自从版本 9(还是8?)以后开始有这个问题,今天更新了最新的 9.20 final 依旧如此。
所以初步判断是个 bug,已经提交到 Opera 的 bug report 系统 ,不知道什么时候能有回应。
updated发现将冒号先 encode 成 %3A 可以解决这个问题,不过目前还属于知其然不知其所以然,补习一下 RFC:http://www.faqs.org/rfcs/rfc1738.html
updatedOpera 9.5已经没有这个问题了,good~



老九 我的BinBin又重架了 不过以前的数据导不回来了 -,=
地址也改成了 www.zoeley.com
Update一下吧 :)
Comment by neery — 2007.4.14 @ 00:16
href指向的url编码在server端预先处理好可以解决这个问题吧?
Comment by Joe — 2007.4.20 @ 13:36
嗯,等下试试看,多谢提醒。hoho
Comment by old9 — 2007.4.20 @ 16:43