【发布时间】:2009-10-06 20:55:48
【问题描述】:
这行代码,解码一个编码的中文单词:
URLDecoder.decode("%E4%BB%BB%E4%BD%95%E8%BD%A6%E8%BE%86%E5%BA%94",
"UTF-8").getBytes().length
当我在 JSP 页面(在 Jboss 上)运行它时,它会打印 5:
<%= URLDecoder.decode("%E4%BB%BB%E4%BD%95%E8%BD%A6%E8%BE%86%E5%BA%94",
"UTF-8").getBytes().length %>
在桌面应用程序中运行它会打印 15:
public static void main(String[] args) {
System.out.println(URLDecoder.decode(
"%E4%BB%BB%E4%BD%95%E8%BD%A6%E8%BE%86E5%BA%94", "UTF-8"
).getBytes().length);
}
为什么?而且我想让jsp也得到15,如何?
【问题讨论】:
-
你确定吗?仔细检查是否还有其他问题。您的整个 JSP 页面是什么样的? 15中的1不是以某种方式隐藏了吗? JSP 中的 Java 代码只是普通的 Java 代码,与 servlet 中的 Java 代码完全相同(实际上,JSP 被转换为 servlet)。
-
JSP 页面不包含任何其他的 URLDecoder 导入语句,我仅用于测试。
-
不,是 5 我没看错。
标签: java unicode encoding urlencode decoding