当前位置: 首页 > 知识库问答 >
问题:

如何修复在我的jsp页面中更改为(·)的美元符号($)?

奚才良
2023-03-14

我有一个代码,在jsp页面上显示$168,00符号,但它更改为$168,00符号,但当我尝试使用公共IP或在另一个客户端中使用我的IP运行我的项目时,$符号不会更改为°,没有问题

我曾尝试使用type=“currency”和currencySymbol=“$”它可以工作,但当我使用currencySymbol=“$”时,它会影响我使用的函数的结果。以前我只使用type=“currency”,它可以工作,但当我提交我的项目时,$symbol变为¥

但在其他浏览器中,它可以正常工作Mozilla(168,00美元)

我使用谷歌Chrome版本76.0.3809.132(官方构建)(64位)

我在标题中声明字符编码,使用

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@taglib uri="http://sargue.net/jsptags/time" prefix="javatime"%>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
value='<fmt:formatNumber type="currency" value="${project.Amount}" minFractionDigits="2" maxFractionDigits="2" />'

共有1个答案

潘琨
2023-03-14

您可能忽略了为JSP页面指定字符编码。

如果您未能在页面标题中指定字符编码,Web浏览器将被迫猜测或回退到某个默认值。因此,您的结果将因浏览器和用户在该浏览器中的设置而异。字符可能会被误解为其他字符。

在ASCII的一些国家变体中,货币符号字符(·)取代了美元符号($)。因此,您看到的可能是一个功能,而不是一个bug。

在Unicode中,使用:

  • 十六进制24,十进制36,表示美元符号
  • 十六进制A4,十进制164,表示货币符号字符

解决方案很简单,应该是您在所有网络工作中的正常操作程序:

  • 为页面内容选择字符编码

确保工具链上没有工具在与您对抗,使用和/或声明其他编码。使用Firefox等功能强大的web浏览器的“开发者版”来检查生成的页面内容。

如今,常用的字符编码是UTF-8。这种编码可以使用Unicode中定义的超过110,000个字符中的任何一个来表示文本。每个字符都有一个永久分配的数字,所以你不会有更多的惊喜。

UTF-16是一种更节省空间的编码,用于大量使用中日韩文字的内容。但各种实现中的安全缺陷导致这种编码不再被推荐用于web工作。

如果您不熟悉字符集和字符编码,请参阅:

  • 每个软件开发人员绝对、积极地必须了解Unicode和字符集的绝对最低限度(没有借口!)作者:Joel Spolsky
  • 字符集和编码,JavaEE 5教程,由Oracle编写。
  • JSP页面中的UTF-8编码,堆栈溢出问题。
  • 更喜欢所有层的UTF 8,Hirondelle Systems的博客文章。

搜索堆栈溢出以获取更多信息,因为这个主题已经讨论过很多次了。

同样,您的web内容可以并且应该声明在编写内容时使用的人类语言(英语、法语、斯瓦希里语等)。

 类似资料:
  • 我有像上面这样的代码,我已经在使用模板文字来替换值,但是veracode扫描仍然显示它易受xss攻击。在这种情况下我该如何修复?

  • 我将dataframe的列索引分配给对象。 我只是希望第二个元素(列)名称是“Fred”。

  • 我运行tomcat服务器并在浏览器上放置。但它没有显示在我的应用程序主页上。只需显示tomcat主页。 请,在哪里和如何改变出现我的主页 [信息]在http://localhost:8080/上运行war [信息]在d:\tutorial2\zayarmyat2\first-web-application\target\Tomcat中使用现有的Tomcat服务器配置

  • 下面的代码是创建(未显示)的方法的一部分,它有几个选项,如撤消、重做、剪切、复制、粘贴等。。。 类仅用于调试目的,但这是我通常放置类的地方 如您所见,我已经将“重做”动作的助记词设置为Y,将“剪切”动作设置为X。 我使用的是中的内置方法,它会自动将我的修改器设置为control,并在我想要的时候精确剪切文本。(CTRL-X) 这里的问题是:由于我的不使用DefaultEditorKit,它将修饰符

  • 右上角的图片: 准备一个图片top.bmp,在 ; MUI 预定义常量 下面添加以下代码: !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_RIGHT !define MUI_HEADERIMAGE_BITMAP "top.bmp" 注释: 第1行:定义上面图片。(如果不定义,默认显示的是安装程序图标) 第2行:定义图片的位置。本行定义显示在右边。

  • 问题内容: 我正在阅读已弃用的文档。 但是它并没有说赞成什么,而是我可以使用什么。 是否有一个新的API文档页面? 我曾经使用过,但似乎添加了分页符 问题答案: 从 jQuery Mobile 1.4开始 ,已弃用并替换为: 缩短 … 更短的 … (1) 注意: 目标 是#page_id或URL。 演示版 (1) 默认为 pageContainer,除非在上进行了修改。