任何人都可以帮助我:
有没有其他方法可以在java jsp页面中对UTF-8
中的特殊字符和其他字符进行编码,而无需更改tomcat配置。
我已经使用URLEncoder.encode()
对我的jsp文件和我的应用程序中的url进行编码,但我不想在tomcat配置中进行更改,因为我的服务器一直在运行,我无法阻止它,有没有其他方法我们可以编码网址而不改变tomcat配置...
答案 0 :(得分:0)
使用java.net.URI代替 HTTP URL Address Encoding in Java 或使用URIBuilder How do I encode URI parameter values? 希望这可以帮助你。
答案 1 :(得分:0)
您错过了在编码中添加UTF-8
。
使用它
URLEncoder.encode(stringToBeEncoded, "UTF-8");
而不是
URLEncoder.encode();
在你的jsp中,使用page charset到UTF-8。
<%@page contentType="text/html;charset=UTF-8"%>
在您的servlet中,您可以使用它
request.setCharacterEncoding("UTF8");
response.setCharacterEncoding("UTF8");
How to get UTF-8 working in Java webapps?
使用此链接中的过滤器:
http://tomcat.apache.org/tomcat-8.0-doc/config/filter.html
如何在任何地方使用UTF-8?
使用UTF-8作为所有内容的字符编码是一个安全的选择。这应该适用于几乎所有情况。
要完全切换到使用UTF-8,您需要进行以下更改:
<Connector>
上设置URIEncoding =“UTF-8”。
参考文献:HTTP Connector,AJP Connector。<%@page contentType="text/html; charset=UTF-8" %>
对于通常的JSP页面和<jsp:directive.page contentType="text/html; charset=UTF-8" />
用于XML中的页面
语法(又名JSP文档)。更改所有servlet以设置响应的内容类型
在内容类型中包含charset名称为UTF-8。使用
response.setContentType("text/html; charset=UTF-8")
或
response.setCharacterEncoding("UTF-8")
。
更改您使用的任何内容生成库(Velocity, Freemarker等)使用UTF-8并在内容中指定UTF-8 他们产生的回应的类型。