定义JavaScript源文件的字符编码

定义JavaScript源文件的字符编码,javascript,unicode,encoding,Javascript,Unicode,Encoding,我想向我的德国用户打印一条状态消息,其中包含umlauts(ä/ü/ö)。我还希望它们位于源文件中,而不必为消息下载和解析一些额外的文件 然而,我似乎找不到一种方法来定义JS源文件的编码。是否有类似于HTML的HTTPequiv?还是应该在HTTP头中定义编码 当我简单地用UTF-8编码文件并为其提供服务时,即显示垃圾。在标题中发送编码总是一个好主意 如果不可能,则标记具有字符集属性 对于法语javascript js,我们使用了另一个字符集: <script src="./js/MySc

我想向我的德国用户打印一条状态消息,其中包含umlauts(ä/ü/ö)。我还希望它们位于源文件中,而不必为消息下载和解析一些额外的文件

然而,我似乎找不到一种方法来定义JS源文件的编码。是否有类似于HTML的
HTTPequiv
?还是应该在HTTP头中定义编码


当我简单地用UTF-8编码文件并为其提供服务时,即显示垃圾。

在标题中发送编码总是一个好主意

如果不可能,则
标记具有
字符集
属性


对于法语javascript js,我们使用了另一个字符集:

<script src="./js/MyScript.js" type="text/javascript" charset="iso-8859-1"></script>

虽然charset参数似乎很有用,但需要注意的是,它在HTML5中实际上是不推荐的


这听起来可能有点愚蠢,但请确保在使用的编辑器中使用正确的编码保存javascript文件。我的javascript文件编码有问题,解决方案就这么简单

在HTML5中,脚本标记的字符集属性似乎没有被弃用(它仅被弃用于a和链接标记)。

解决问题的最简单方法是对字符串中的特殊字符使用unicode转义。这样,您的代码就不会受到承载它的页面的影响


一个可能对您有所帮助的工具:

您应该使用HTTP header.Tomcat-only进行本地开发。静态文件由Apache在生产系统上提供服务。另请参见:那么还有什么替代方案?@MicahHenning,如果您不能在HTTP头中定义它怎么办?或者如果您没有使用web服务器并在本地运行HTML文件怎么办?HTML5不反对脚本标记上的属性
charset
。上面的链接只处理链接,不处理脚本@是的,你是对的。也许在2012年6月,当我发表这篇文章时,我的理解是,
charset
参数被弃用,但后来又被重新添加。毕竟,HTML5直到2014年底才最终确定。很遗憾,链接已经死了。您应该使用utf-8,此字符集将允许iso-8859-1字符和更多字符。当然,除非您明确希望只支持好的ole法语;)
<script src="./js/MyScript.js" type="text/javascript" charset="iso-8859-1"></script>