java - Eclipse javascript 字符编码

标签 java javascript jsp character-encoding jstl

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

我的应用程序是一个 Java Web 应用程序,前端是 jQuery。从服务器发送的所有字符(在 JSP 中或通过 AJAX)都会正确显示。当我想显示一些硬编码到 JavaScript 文件中的文本时,它被破坏了。

我正在使用 Eclipse。在 JSP 的 header 中我使用:

<%@ 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)

提前致谢!

最佳答案

如果请求的响应 header 中缺少编码,c:import 将使用服务器平台默认编码。相反,只需使用 src 属性即可。网络浏览器在这方面更加智能。

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

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

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

关于java - Eclipse javascript 字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2868232/

相关文章:

javascript - webpack中样式@import和js导入的区别

JavaScript 进度条不适用于 OO JS 代码

java - 从 JS 访问 ServletContext

java - 如何用openGL生成Winamp风格的可视化效果? (奶滴等)

java - 尝试为 Vector 添加元素()时的 NPE

java - "overriding"main 在 Java 中有什么作用?

javascript - 组件首次更新

java - 如何打印给定字符串的坐标?

java - 通过 servlet 在 oracle 中获取第 2 行、第 3 行....200 行的表

java - 无法将带有 session 的请求转发到 JSP 页面