€符号未定义
问题描述:
我在我的行动中有一个列表,我通过值保存在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>
元素的€
元素在?
转化?
答
将它放置在JSP页面的顶部。 UTF-8编码中的符号显示优于?
。
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
答
如果没有定义的页面编码,默认值是(在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
: -
设置在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(很旧,但仍然如此)。
什么是页面编码或内容类型? –
页面编码没有定义 – tviana
@tviana没有提出答案的任何理由? –