我在用 Javascript 或 Actionscript 3 编码的 Java 中对 UTF-8 字符串进行 URL 解码时遇到问题。我设置了一个测试用例,如下所示:
有问题的字符串是 Produktgröße
当我使用 JS/AS3 编码时,我得到以下字符串:
escape('Produktgröße')
产品gr%F6%DFe
当我用 JS 取消这个时,我没有任何变化
unescape('Produktgr%F6%DFe')
产品gr%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/>
产品
产品gr%C3%B6%C3%9Fe
产品gr%C3%B6%C3%9Fe
Produktgröße
Produktgröße
知道为什么我与语言存在这种差异以及为什么 JS/AS3 的行为不像我预期的那样吗?
谢谢。