我创建涉及显示金融数据给用户一个Web应用程序。 来自英国的存在和使用GBP£货币,此字符使用了很多。
然而,飘飞的£显示为在中间问号的钻石,并在网页上,它抛出1个字节串的无效charachter UTF-8字节1。
有没有办法显示一个UTF安全的方式£
标志? 下面是我所目前在做一个例子:
"Rent Per Annum: £" + '${tenant.currentRent}'
我创建涉及显示金融数据给用户一个Web应用程序。 来自英国的存在和使用GBP£货币,此字符使用了很多。
然而,飘飞的£显示为在中间问号的钻石,并在网页上,它抛出1个字节串的无效charachter UTF-8字节1。
有没有办法显示一个UTF安全的方式£
标志? 下面是我所目前在做一个例子:
"Rent Per Annum: £" + '${tenant.currentRent}'
具体问题可以有至少以下一个或多个原因:
JSP文件是不能被编辑器(Eclipse中,Netbeans的,记事本等)使用UTF-8编码保存。
服务器没有使用UTF-8通过网络发送之前由JSP生产的以字节流中的字符进行解码。
浏览器没有使用UTF-8字节流从网络上的字符编码。
这些问题都可以解决,如下所示:
配置编辑器使用UTF-8来保存JSP文件。 我不熟悉的STS,但我知道它是基于Eclipse的,所以它可能会是相同标准的Eclipse。 转到窗口>首选项>常规>工作空间>文本文件编码 ,然后从中挑选在下拉正确的编码。
另一种方法是使用HTML实体£
(由其他回答者的建议),这样它不再相关,其中编码JSP文件被保存。 涉及到的字符串中的所有字符£
通过基本的ASCII编码已经被支持(在世界上基本上使用的每一个体面的字符编码“扩展”的ASCII,所以它会一直工作)和HTML解释器(该webbrower)将HTML实体转换成正确的汉字。
该服务器必须指示使用UTF-8到JSP解码输出。 这可以在每个JSP的基础上通过完成
<%@page pageEncoding="UTF-8" %>
或由应用范围的基础上
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <page-encoding>UTF-8</page-encoding> </jsp-property-group> </jsp-config>
浏览器必须被指示使用UTF-8来编码的HTTP响应。 这是为了通过设置要解决charset
HTTP响应的属性Content-Type
首部为UTF-8,这是已经隐含地通过将溶液进行以引起#2。
作为一个实体在HTML写这个的可移植的方法是£
或在它的字符代码的一般情况下£
或£
£。 这种方式,将信号源是普通的7位ASCII码,所以基本上独立编码的(忽略像EBCDIC等秘传)。 又见http://www.fileformat.info/info/unicode/char/a3/index.htm