首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eclipse javascript字符编码

Eclipse javascript字符编码
EN

Stack Overflow用户
提问于 2010-05-20 02:24:04
回答 1查看 2.8K关注 0票数 1

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

我的应用程序是一个Java webapp,前端是jQuery。从服务器发送的所有字符-无论是在JSP中还是使用AJAX -都能正确显示。当我想要显示一些硬编码到javascript文件中的文本时,它被破坏了。

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

代码语言:javascript
复制
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

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

代码语言:javascript
复制
<script type="text/javascript" charset="utf-8"><c:import url="/JS/mainJS.js" /></script>

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

但是当我尝试这个的时候:

代码语言:javascript
复制
$.test = function(){
    var s = "éééáááűűűű";
    alert(s);
}

我得到了:

代码语言:javascript
复制
éééáááűűűű

奇怪的是:当我尝试一个单独的html文件(在同一个项目中)时,它是有效的:

代码语言:javascript
复制
<!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 )

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-20 02:28:03

如果请求的响应头中没有编码,则c:import使用服务器平台默认编码。只需使用src属性即可。在这一点上,The浏览器更聪明。

代码语言:javascript
复制
<script type="text/javascript" src="/JS/mainJS.js"></script>

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2868232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档