Html特殊字符和Javascript

时间:2012-09-30 10:08:36

标签: java javascript html encoding special-characters

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

我正在尝试发送包含此文字的邮件:

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

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

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

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

& -> &
à -> à 

我该怎么办? Thare是一些执行此操作的JavaScript库吗?

2 个答案:

答案 0 :(得分:4)

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

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

这是很常见的事情,tomcat捆绑了其中一个过滤器(How do I change how POST parameters are interpreted?)。如果您计划部署到不同的servlet容器,我建议您编写自己的过滤器(只需从tomcat复制粘贴)。

答案 1 :(得分:-1)

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