我的动作中有一个列表,我通过保存在MySql DB上的值来表示。
我只存储了一个对象,其名称为€
。
在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 :(得分:1)
将其放在JSP页面的顶部。 UTF-8编码中的符号显示优于?
。
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
答案 1 :(得分: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)。
您可以通过三种方式设置页面,请求和响应编码:
在每个JSP中设置contentType
:
<%@page contentType="text/html; charset=UTF-8" %>
在每个JSP中设置pageEncoding
:
<%@page pageEncoding="UTF-8" %>
在web.xml中设置<jsp-property-group>
一次:
<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(很旧,但仍然如此)。