【发布时间】:2011-09-02 03:46:00
【问题描述】:
我在用 Javascript 或 Actionscript 3 编码的 Java 中对 UTF-8 字符串进行 URL 解码时遇到问题。我设置了一个测试用例,如下所示:
有问题的字符串是 Produktgröße
当我使用 JS/AS3 编码时,我得到以下字符串:
escape('Produktgröße')
Produktgr%F6%DFe
当我用 JS 取消转义时,我没有得到任何改变
unescape('Produktgr%F6%DFe')
Produktgr%F6%DFe
所以,我假设 JS 没有正确编码字符串??
下面的 JSP 产生这个输出
<%@page import="java.net.URLEncoder"%>
<%@page import="java.net.URLDecoder"%>
<%=(URLDecoder.decode("Produktgr%F6%DFe","UTF-8"))%><br/>
<%=(URLEncoder.encode("Produktgröße","UTF-8"))%><br/>
<%=(URLEncoder.encode("Produktgröße"))%><br/>
<%=(URLDecoder.decode(URLEncoder.encode("Produktgröße")))%><br/>
<%=(URLDecoder.decode(URLEncoder.encode("Produktgröße"),"UTF-8"))%><br/>
产品目录
Produktgr%C3%B6%C3%9Fe
Produktgr%C3%B6%C3%9Fe
产品目录
产品目录
知道为什么我的语言存在这种差异以及为什么 JS/AS3 的行为不像我预期的那样吗?
谢谢。
【问题讨论】:
标签: java javascript encoding unicode-escapes