2014-09-01 99 views
0

我试图在javax.portlet.PortletReqest对象中设置字符编码,但该对象似乎没有似乎在所有示例中使用的setCharacterEncoding()方法遇到包括Liferay网站。尽管它有一个setAttribute()方法,我可以指定一个键和一个值,所以我假设我可以像setAttribute(“characterEncoding”,“UTF-8”)那样在其中设置它。或类似的东西 我无法在任何地方找到可用属性的完整列表。我正在使用Liferay 6.1 我试图做到这一点,因为我在显示西班牙字符时遇到问题。在Liferay 6.1中设置字符编码

+0

我想通了。我必须获取HTTPServletRequest并将其设置为: PortalUtil.getHttpServletRequest(request).setCharacterEncoding(“encoding”); – steven35 2014-09-01 15:43:45

回答

2

它不会在PortletRequest/PortletResponse意义来指定字符编码:ActionRequest(的PortletRequest亚型)实际上定义的setCharacterEncoding,上RenderRequest它没有任何意义。此外,您从HttpServletRequest屏蔽了一个原因:您通常不知道您在Portlet中时已经分析了多少内容。

您可能在当前版本的当前应用程序服务器上发现了适用于您的某些内容。不要依赖它继续在未来工作。事实上,准备在最不受欢迎的时刻打破。

我建议你给我们一些洞察底层问题 - 你为什么认为你需要编码?它可能与正确的应用程序服务器配置或其他设置一样简单。

+0

我有问题显示西班牙字符。 catalina.out中的字符已经不正确。例如,我得到了¿½或 而不是 - 取决于我是否在中设置了UTF-8或Latin-1。 你是对的。 request.setCharacterEncoding()不起作用 – steven35 2014-09-02 10:25:31