为什么这个角色转换会发生?

时间:2014-09-19 06:39:49

标签: java jsp servlets struts

我正在尝试提交一个html表单,表单的内容是混合语言,如英语和泰语或英语阿拉伯语等组合,但英语总是存在。

我说我用

提交了表单
  

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

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

  

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

我在页面指令中将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;
}

3 个答案:

答案 0 :(得分:1)

包含Uni-code元标题以支持英语以外的字符

对于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>

答案 1 :(得分:0)

尝试插入

&LT; 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>

答案 2 :(得分:0)

字符转换由于以下原因而发生:

  1. Struts 1.1仅支持&#34; ISO-8859-1&#34;字符编码。
  2. 解决方案:

    1. 升级到Struts 1.2或更高版本。(推荐)
    2. 使用Servlet而不是动作bean。