2014-09-19 162 views
0

我想提交一个html表单,表单的内容是混合语言,如英语和泰语或英语阿拉伯语等的组合,但英语总是在那里。为什么这个charcter转换会发生?

可以说,我提交的表单与

计算器,การพัฒนา

现在,在服务器(Java Servlet的)文本收到

计算器,à¸à¸²à¸ £à¸à¸±à¸à¸à¸ø²

我在页面指令中将JSP页面编码设置为UTF-8。 谁能告诉我为什么会发生这种情况?

请随时询问是否有其他要求。

这里是根JSP包含在所有其他JSP(布局样的结构)

<%@ page contentType="text/html; charset=UTF-8" isELIgnored="false" %> 
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> 
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> 
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> 
<%@ taglib uri="/WEB-INF/util.tld" prefix="util" %> 
<%@ taglib uri="/WEB-INF/excel.tld" prefix="ms" %> 
<%@ taglib uri="/WEB-INF/license.tld" prefix="license" %> 

编辑: 响应如下评论:

public void setEmailAddresses(String val) { 
    System.out.println(val); 
    emailAddresses = val; 
} 
public String getEmailAddresses() { 
    System.out.println(val); 
    return emailAddresses; 
} 
+0

你尝试在你的servlet中设置你的'request.setCharacterEncoding(“UTF-8”);''吗?你可以告诉我们你的servlet吗? – user23123412 2014-09-19 07:26:35

+0

我正在使用Struts 1.1,因此没有Servlet存在,但编辑了问题以便您可以看到我正在执行的JSP。 – 2014-10-14 11:46:22

+0

你能告诉我们你的服务器部分吗? – user23123412 2014-10-15 02:29:37

回答

0

角色发生转换,由于以下几点:

  1. 的Struts 1.1只支持 “ISO-8859-1” 字符编码。

解决方案:

  1. 升级和struts 1.2或以上(推荐)
  2. 使用的Servlet代替的动作豆。
0

尝试插入

< meta charset="UTF-8"/>

分成<head></head>双标签。

或试试这个乌尔JSP文件是这样的:

<%@ page contentType="text/html;charset=UTF-8" language="java" %> 

<html> 

<head> 
<title></title> 
<meta charset="UTF-8"/> 
</head> 

<body> 
<%--Contents--%> 
</body> 

</html> 
+0

在这里你可以看到它已经这样做了: <!DOCTYPE HTML PUBLIC “ - // W3C // DTD HTML 4.01过渡// EN”“http://www.w3.org/TR/html4/! loose.dtd “> < - 字符集 - > 井这不是解决问题? – 2014-09-19 07:27:16

+0

也许你需要response.setCharacterEncoding(“UTF-8”);看看这个http://balusc.blogspot.jp/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest – NTK88 2014-09-19 07:33:46

+0

我照你的建议做了,但没有运气。 你能告诉我在哪里为Resin服务器指定URIencoding? – 2014-09-19 15:22:36

1

包括统一码元头,以支持其他字符THN英语

对于HTML 5个网页:

<head> 
    <meta charset="UTF-8"> 
</head> 

对于较旧的HTML页面4.0.1,使用此:

<head> 
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 
</head> 
+0

我们没有使用HTML 5.无论如何感谢您的信息。 – 2014-12-16 10:43:01

+0

我已经回答了这个问题,答案是答案由我提供。 (见下文)。 – 2014-12-16 10:44:12