阅读:4249回复:8
请问Firefox地址栏是的URL是使用的什么编码?在页面中如何用Javascript 解码?
大家好,我今天遇到一个问题,就是在URL参数中带有特殊字符时,FF会自动进行编码,可是我不知道它用的是什么格式,所以无法解析为原来的字符,希望大家帮我看一下怎么解决。
我在FF地址栏中输入这个URL:http://localhost:8080/index.html?Title=Lösungen FF会自动解析成这个:http://localhost:8080/index.html?Title=L%810%8B2sungen 我想在页面中用Javascript 把“L%810%8B2sungen” 还原成“Lösungen”, 但是不知道用什么函数。 我试了decodeURI 和 decodeURIComponent, 都不行。 unescape 会把它转成 "L02sungen". 我在网上找了半天了,也没有找到有用的信息。还是希望大家帮我一下, 谢谢了! |
|
1楼#
发布于:2008-03-06 18:31
javascript好像只能做unicode编码的转换。
用escape转换Lösungen 的编码是L%F6sungen, 我这里地址栏解析的是 http://localhost:8080/index.html?Title=L%C3%B6sungen,你那里转换的编码不知道是哪个字符集的。 |
|
2楼#
发布于:2008-03-06 18:31
我的Firefox是中文版,这个有关系吗?
操作系统是windows XP SP2 |
|
3楼#
发布于:2008-03-06 18:31
我所知也不多, 听说是把中文字符放在gbk编码的页面的form里submit,就能转换成gbk的编码, 但我从来没有实验过。
实际上, 把特殊字符转换成非utf-8编码,或者逆转回来,也是我遇到的难题, 我还没有想到用javascript解决的办法。 |
|
4楼#
发布于:2008-03-06 18:31
kogo 和 wushi777 两人的 about:config network.standard-url.encode-utf8 不同
前者为默认,false;后者为 true 所以 前者转换为 gbk 编码 后者为 utf8 编码 |
|
5楼#
发布于:2008-03-06 18:31
escape('Lösungen') -> L%F6sungen
encodeURIComponent('Lösungen') -> L%C3%B6sungen encodeURI('Lösungen') -> L%C3%B6sungen 没有找到能转换GBK encode 的函数。要不自己写一个? |
|
6楼#
发布于:2008-03-06 18:31
多谢版主 fiag 的指点,我把about:config network.standard-url.encode-utf8 设为true 就好使了。 firefox 就可以编码成这样了: http://localhost:8080/index.html?Title=L%C3%B6sungen
然后我用decodeURI()就可以把它解码成原字符了。 同时也非常感谢wushi777的热心帮助。 |
|
7楼#
发布于:2008-03-06 18:31
不过汉字
%A2%E3 => 0xA2E3 %81{ => 0x817B %810%8B2 跟上面的不一样啊,要长些…… |
|
8楼#
发布于:2008-03-06 18:31
|
|