我在客户端使用javascript和ajax框架,在服务器端使用Java glassfish。
我正在尝试发送包含此文字的邮件:
"àèìòù !"£$%&/()=?^"
但是当我读到我的帖子请求(进入java服务器端)时,我得到了这个结果:
"à èìòù !"£$%&/()=?^"
我需要将所有html特殊字符转换为相应的html代码,例如:
& -> &
à -> à
我该怎么办? Thare是一些执行此操作的JavaScript库吗?
答案 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