我正在使用一个使用JSP页面的Spring MVC应用程序,我正在尝试一个charset问题。
我有以下情况。
在jsp页面中我有这样的东西:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ page session="false"%>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Visualizza Prospetto</title>
</head>
<jsp:include page="../layout/header.jsp"/>
<body class="azure">
<fmt:setLocale value="it_IT"/>
..................................................................
..................................................................
SOME STUFF
..................................................................
..................................................................
<div id="outputModaleVariazioneAnticipo"></div>
</body>
</html>
正如您在本页中所看到的,我有两件重要的事情需要注意:
1)我指定必须使用 UTF-8 字符集:
<meta charset="UTF-8">
2)在页面的末尾有一个空的div:
<div id="outputModaleVariazioneAnticipo"></div>
其中“注入”通过实现AJAX行为的JQuery函数定义到另一个jsp页面的模态窗口。
因此,这是实现此模式的页面内容:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!-- MODALE PER L'INSERIMENTO DELLA VARIAZIONE DELL'ANTICIPO: -->
<div id="variazioneAnticipoModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"
aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h3 class="modal-title" style="color: #3b5a76;">Variazione
Anticipo</h3>
</div>
<div id="modal-body" class="modal-body">
........................................................
........................................................
SHOW SOMETHING
........................................................
........................................................
<input id="saldoModale2" type="text" style="width: 25%" class="rightAlligned form-control" value='${progetto.impSal}' />
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
在这个模态页面中,我有输入标记:
<input id="saldoModale2" type="text" style="width: 25%" class="rightAlligned form-control" value='${progetto.impSal}' />
然后我有一个JQuery脚本,当用户点击按钮时,以这种方式更新此输入标记的值:
$("#saldoModale2").val('€');
所以前一行只应将€字符放在我的输入标记内。
问题是,在我的输入标签中看到€,我得到了这个奇怪的值:â,
问题似乎与€字符有关,因为如果我按 $ :
$("#saldoModale2").val('$');
它完美无缺。
最奇怪的是,我还尝试将此替换执行到JSFiddle:https://jsfiddle.net/AndreaNobili/4720ek9g/1/,这似乎工作正常。所以我问它是否可能依赖于实现我的页面的文件的某些charset \ encoding属性,或类似的东西。
我觉得很奇怪,因为我做了以下操作:
1)正如您在包含我指定的模式页面的页面中所看到的那样,必须使用 UTF-8 字符集,将此行添加到 ... < / strong>部分:
<meta charset="UTF-8">
(我认为我还没有在实现我的模态的jsp中设置它,因为它只是一个HTML片段而且不包含 ... 部分。它显示成为一个包含它的页面的一部分
2)我在这两个页面上手动设置 UTF-8 字符集,点击相关的jsp页面到Exlipse然后执行:右键单击---&gt;属性---&gt;资源---&gt;文本文件编码---&gt;其他:在这里我选择了UTF-8
但我仍然获得â,字符,而不是€
为什么呢?我错过了什么?怎么了?锄头我可以解决这个问题吗?