0

我在客户端使用 javascript 和 ajax 框架,在服务器端使用 Java glassfish。

我正在尝试使用以下文本发送邮件:

"àèìòù !"£$%&/()=?^"

但是当我阅读我的帖子请求(进入java服务器端)时,我得到了这个结果:

"à èìòù !"£$%&/()=?^"

我需要将所有 html 特殊字符转换为相应的 html 代码,例如:

& -> &
à -> à 

我能怎么做?有一些执行此操作的 javascript 库吗?

4

2 回答 2

4

欢迎来到有史以来最愚蠢的决定之一。servlet 规范定义默认编码应该是 ISO-8859-1(而不是 UTF-8)。

因此,为了让您的 Java 应用程序在 POST 后正确读取这些字符,您需要设置一个 Servlet 过滤器,将字符集强制为 UTF-8。发生这种情况是因为大多数(如果不是全部)浏览器使用 UTF-8 作为默认字符集并且不设置 Accept-Charset 标头。

这是很常见的事情,tomcat 捆绑了其中一个过滤器(如何更改 POST 参数的解释方式?)。如果您打算部署到不同的 servlet 容器,我建议您编写自己的过滤器(只需从 tomcat 复制粘贴)。

于 2012-09-30T10:14:02.437 回答
-1

是的!有可用的方法,一个例子是 replace(); 方法。更多信息在这里

于 2012-09-30T10:13:34.600 回答