我有一个网页,我根据文本框中的文字进行搜索。此文本可以是日语,中文等任何语言(或任何mbcs字符)。
现在,当我输入日语(或任何其他mbcs字符)的文本时,结果会使用一些奇怪的字符填充屏幕(表单)。
例如:testテスト
将变为testãã¹ã
。
当我在Firebug(调试工具)中看到post参数时,我可以看到搜索字符串变为testテスト
但是当我在我的代码中放入调试语句时,我可以看到request.getParameter("searchString")
不是能够识别日文字符并将它们变成一些奇怪的字符。
我的JSP标头已经有<%@ page contentType="text/html; charset=UTF-8"
我也试过把pageEncoding="UTF-8"
放在这里,但没有帮助。
我在request.setCharacterEncoding("UTF-8")
之前尝试设置request.getParameter
之类的字符编码,但这对我来说也不起作用。
在浏览了几个论坛和博客后,我也尝试在tomcat配置的useBodyEncodingForURI=true
中设置<Connector>
,但这对我没有帮助。
有人可以建议我解决这个问题吗?
答案 0 :(得分:1)
在每个servlet / action中设置以下编码
response.setContentType("UTF-8");
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
还在第一个servlet / action
中设置了以下内容for japanese
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
session.setAttribute(Globals.LOCALE_KEY, new Locale("jp", "ja_JP"));