2014-06-11 130 views
1

我在我的行动中有一个列表,我通过值保存在MySql数据库字段。€符号未定义

我只保存一个对象,其名称为

在JSP中,当我这样做:

<s:iterator value="unitesList"> 
    <s:property value="designation"/> 
</s:iterator> 
<s:select list="unitesList" name="unity" listValue="designation" listKey="id" /> 

我有这样的:

€ 
<select name="unity" id="unity"> 
    <option value="1">?</option> 
</select> 

为什么<s:select>元素的元素在?转化?

+0

什么是页面编码或内容类型? –

+0

页面编码没有定义 – tviana

+0

@tviana没有提出答案的任何理由? –

回答

1

将它放置在JSP页面的顶部。 UTF-8编码中的符号显示优于?

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %> 
+0

好吧,我明白了,但为什么''正确显示和''不?而这并没有解决问题。 – tviana

+0

Struts UI标签在写入输出之前将符号转义。 –

+0

在'<%@ page contentType =“text/html; charset = UTF-8”pageEncoding =“UTF-8”%>'解决方案中还有其他的选择吗? – tviana

1

如果没有定义的页面编码,默认值是(在JSP page指令的等价物):

<%@page contentType="text/html; charset=ISO-8859-1" %> 

你想要的编码不是ISO-8859-1,但UTF-8,支持任何语言(看看Table 23-2 Valid Values for the IANA-Defined Character Set)。

您可以设置页面,请求和响应的编码方式有三种:

  1. 在每个JSP设置contentType

    <%@page contentType="text/html; charset=UTF-8" %> 
    
  2. 在每个JSP设置pageEncoding

  3. 设置在web.xml一次:

    <jsp-config> 
        <jsp-property-group> 
         <url-pattern>*.jsp</url-pattern> 
         <page-encoding>UTF-8</page-encoding>    
        </jsp-property-group> 
    </jsp-config> 
    

的HTML <meta>标签将相应地生成。切记在不必要地使用pageEncoding<jsp-property-group>时不指定不同的编码,这是一个转换时错误。

欲了解更多信息,请阅读Oracle docs(很旧,但仍然如此)。