[英]Eclipse javascript character encoding
我想显示来自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)
提前致谢!
如果请求的响应标头中不存在c:import
使用服务器平台默认编码。 而是只使用src
属性。 Web浏览器在这方面更聪明。
<script type="text/javascript" src="/JS/mainJS.js"></script>
(如果您是在固定上下文而不是域根目录上运行,则如有必要,请删除斜杠)
如果确实需要使用c:import
(老实说,在这种情况下我看不到任何好处),那么您需要编写一个侦听/JS/*
的Filter
,它会设置适当的Content-Type
标头在响应上使用正确的编码。 但是,如果它涉及外部URL,则无法使用,这是外部服务器的责任。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.