为什么进入这个JSP页面,如果我已经指定使用UTF-8字符集,我获得了†- 而不是€符号?

时间:2015-12-29 15:12:29

标签: jquery spring jsp spring-mvc utf-8

我正在使用一个使用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">&times;</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

但我仍然获得â,字符,而不是

为什么呢?我错过了什么?怎么了?锄头我可以解决这个问题吗?

0 个答案:

没有答案