【问题标题】:Eclipse javascript character encodingEclipse javascript 字符编码
【发布时间】:2011-02-21 12:46:31
【问题描述】:

我想从 javascript 中显示一些特定于语言的字符,但我不能。

我的应用是 Java webapp,前端是 jQuery。从服务器发送的所有字符(在 JSP 中或使用 AJAX)都可以正确显示。当我想在 javascript 文件中显示一些硬编码的文本时,它被破坏了。

我正在使用 Eclipse。在我使用的 JSP 标头中:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

我也试过这个(脚本元素中的字符集):

<script type="text/javascript" charset="utf-8"><c:import url="/JS/mainJS.js" /></script>

在我的 Eclipse 中,我将项目属性/文本文件编码设置为 UTF-8,并且我检查了 JS 文件的资源属性/文本文件编码也是 UTF-8。

但是当我尝试这个时:

$.test = function(){
    var s = "éééáááűűűű";
    alert(s);
}

我明白了:

éééáááűűűű

奇怪的是:当我尝试使用单独的 html 文件(在同一个项目中)时,它正在工作:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
  <head>
    <title>Test</title>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

    <style type="text/css">
        body {background: #c0c0c0;}
    </style>

    <script type="text/javascript">
        $(document).ready(function(){
            var s = "éááűűúúú";
            $("#console").text(s);
            alert(s);
        })
    </script>

  </head>

  <body>
        <div id="console"></div>
  </body>
</html>

即使我不使用任何内容类型和页面编码设置。

有什么问题?我该怎么办? (我使用的是集成在 Eclipse 中的 Apache Tomcat)

提前致谢!

【问题讨论】:

  • 您是否使用任何处理 html 的过滤器?如果使用 script 标签而不是 c:import 来导入 js 文件会发生什么?

标签: java javascript jsp character-encoding jstl


【解决方案1】:

如果请求的响应标头中没有编码,c:import 使用服务器平台默认编码。而是只使用 src 属性。网络浏览器在这方面更智能。

<script type="text/javascript" src="/JS/mainJS.js"></script>

(如果您在固定上下文而不是域根目录上运行,则如有必要,请删除前导斜杠)

如果你真的,真的需要 c:import (老实说,在这种特殊情况下,我没有看到 任何 优势),那么你需要写一个 Filter 监听/JS/* 在响应中使用正确的编码设置适当的 Content-Type 标头。但是,如果涉及外部 URL,这将不起作用,这是外部服务器的责任。

【讨论】:

    猜你喜欢
    • 2013-08-19
    • 2014-07-24
    • 2021-10-24
    • 2017-11-20
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多