该£符号被示出为在中间问号的金刚石(The £ sign is shown as a diamond

2019-07-31 10:55发布

我创建涉及显示金融数据给用户一个Web应用程序。 来自英国的存在和使用GBP£货币,此字符使用了很多。

然而,飘飞的£显示为在中间问号的钻石,并在网页上,它抛出1个字节串的无效charachter UTF-8字节1。

有没有办法显示一个UTF安全的方式£标志? 下面是我所目前在做一个例子:

 "Rent Per Annum: £" + '${tenant.currentRent}'

Answer 1:

具体问题可以有至少以下一个或多个原因:

  1. JSP文件是不能被编辑器(Eclipse中,Netbeans的,记事本等)使用UTF-8编码保存。

  2. 服务器没有使用UTF-8通过网络发送之前由JSP生产的以字节流中的字符进行解码。

  3. 浏览器没有使用UTF-8字节流从网络上的字符编码。

这些问题都可以解决,如下所示:

  1. 配置编辑器使用UTF-8来保存JSP文件。 我不熟悉的STS,但我知道它是基于Eclipse的,所以它可能会是相同标准的Eclipse。 转到窗口>首选项>常规>工作空间>文本文件编码 ,然后从中挑选在下拉正确的编码。

    另一种方法是使用HTML实体£ (由其他回答者的建议),这样它不再相关,其中编码JSP文件被保存。 涉及到的字符串中的所有字符£ 通过基本的ASCII编码已经被支持(在世界上基本上使用的每一个体面的字符编码“扩展”的ASCII,所以它会一直工作)和HTML解释器(该webbrower)将HTML实体转换成正确的汉字。

  2. 该服务器必须指示使用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> 
  3. 浏览器必须被指示使用UTF-8来编码的HTTP响应。 这是为了通过设置要解决charset HTTP响应的属性Content-Type首部为UTF-8,这是已经隐含地通过将溶液进行以引起#2。

也可以看看:

  • Unicode的-如何让人物吧?


Answer 2:

作为一个实体在HTML写这个的可移植的方法是&pound; 或在它的字符代码的一般情况下&#163;&#xA3; £。 这种方式,将信号源是普通的7位ASCII码,所以基本上独立编码的(忽略像EBCDIC等秘传)。 又见http://www.fileformat.info/info/unicode/char/a3/index.htm



文章来源: The £ sign is shown as a diamond with a question mark in the middle