我正在寻求帮助,将堆栈中的所有层都转换为 UTF-8 编码。
我发现这篇好文章:
http://www.javapractices.com/topic/TopicAction.do?Id=206 http://www.javapractices.com/topic/TopicAction.do?Id=206
描述了我需要担心编码的 3 个地方。由于我的 (1) Oracle 数据库当前设置为 UTF-8,因此 (2) 浏览器和 (3) 服务器需要担心。
我还找到了这篇详细的文章
http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest
我试图在下面遵循这一点,但有一些关于实施的新手问题。
为了解决浏览器的问题,我确保在每个 JSP 页面的顶部包含以下内容:
<%@page pageEncoding="UTF-8"%>
(作为参考,请参见here http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest).
为了解决服务器问题,我确保在发出以下命令之前在 Java servlet 和 JSP 页面中包含以下行:request.getParameter()
or request.getAttribute()
陈述:
request.setCharacterEncoding("UTF-8");
由于我使用的是 GlassFish 3.1.2,我知道它默认不使用 UTF-8,因此我需要以某种方式手动设置它。
我见过很多网站都在谈论名为glassfish-web.xml
。这是正常 glassfish 安装的一部分吗?我不知道在哪里可以找到它。我一直在使用web.xml
文件在我的WEB-INF
我的网络应用程序的文件夹。有人可以帮我看看是否需要修改这个web.xml
文件,或者我是否需要找到或创建一个名为glassfish-web.xml
,为 glassfish 配置编码?
My web.xml
文件开头为:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
...
对于 JSP/servlet 请求,我在web.xml
file
<parameter-encoding default-charset="UTF-8"/>
可以这样放入吗web.xml
文件?或者,是否需要加入一些glassfish-web.xml
file?
对于 JSP/servlet 响应,我将以下内容放入我的web.xml
文件(参见接受的答案here https://stackoverflow.com/questions/6279504/unable-to-change-charset-from-iso-8859-1-to-utf-8-in-glassfish-3-1):
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
我假设这些行只是插入之间<web-app>
and </web-app>
。但是,让我知道它们是否应该进入其他描述符(例如<glassfish-web-app>
and </glassfish-web-app>
)?
我还在JSP中添加了以下内容<head>
部分:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
有用的参考:
如何摆脱警告:PWC4011:无法将请求字符编码设置为 UTF-8 https://stackoverflow.com/questions/7643484/how-to-get-rid-of-warning-pwc4011-unable-to-set-request-character-encoding-to
https://stackoverflow.com/tags/servlet-filters/info https://stackoverflow.com/tags/servlet-filters/info
https://wikis.oracle.com/display/GlassFish/FaqHttpRequestParameterEncoding https://wikis.oracle.com/display/GlassFish/FaqHttpRequestParameterEncoding