Java中的URL解码日语字符等

Dan*_*bbs 3 java servlets character-encoding url-encoding

我有一个servlet接收一些POST数据.因为这个数据是x-www-form-urlencoded,所以像サボテン这样的字符串将被编码为サアテン.

如何将此字符串取消编码回正确的字符?我尝试过使用URLDecoder.decode("encoded string", "UTF-8");但没有什么区别.

我想对它们进行编码的原因是因为,在我在网页上显示这些数据之前,我逃避了& 目前,它正在转义编码字符串中的&s,因此字符没有正确显示.

Bal*_*usC 5

这些不是 URL编码.它看起来像%E3%82%B5%E3%83%9C%E3%83%86%E3%83%B3.这些是十进制HTML/XML实体.要浏览HTML/XML实体,请使用Apache Commons Lang StringEscapeUtils.


根据评论更新:当响应编码不是UTF-8时,您将收到问号.如果您正在使用JSP,只需将以下行添加到页面顶部:

<%@ page pageEncoding="UTF-8" %>
Run Code Online (Sandbox Code Playgroud)

有关本文中途的解决方案,请参阅更多详细信息.我更喜欢使用-UTF8-all-the-way来摆弄正则表达式,因为正则表达式不会让你为世界统治做好准备.