在提供JavaScript时使用哪个charset与PHP标头一起使用

时间:2015-01-11 18:44:01

标签: javascript php unicode encoding utf-8

通常,我会将utf-8用于所有内容。 utf-8是否可以接受JavaScript

header('Content-Type: application/javascript; charset=utf-8');

我问的原因是http://kunststube.net/encoding/州:

  

语言支持Unicode的意义何在?使用Javascript   例如,支持Unicode。实际上,Javascript中的任何字符串都是   UTF-16编码。事实上,这是Javascript唯一可以解决的问题。   您不能在Javascript中使用非UTF-16编码的字符串。   Javascript崇拜Unicode到没有设施的程度   处理核心语言中的任何其他编码。因为Javascript是   自浏览器以来,最经常在浏览器中运行并不是问题   可以处理编码和解码输入的世俗物流   输出

我应该使用utf-16代替utf-8吗?或者这篇文章是关于JavaScript如何编码文本,而不是浏览器如何对恰好是JavaScript的文件的文本进行解码?

2 个答案:

答案 0 :(得分:1)

  

或者这篇文章是关于JavaScript如何编码文本,而不是浏览器如何对恰好是JavaScript的文件的文本进行解码?

正确。 JavaScript String值作为一系列UTF-16代码单元进行存储和处理,但这与JS源代码的加载方式无关。

UTF-16是JS源编码的不良选择,因为它不兼容ASCII。有许多浏览器怪癖会打破像UTF-16这样的非ASCII字符集,因此通常最好避免将其作为网络上的文件编码。

  

标题('Content-Type:application / javascript; charset = utf-8');

这很好,但请注意,并非所有浏览器都必须尊重此处的charset;一些(尤其是较旧的)浏览器将使用与链接到脚本的页面上使用的编码相同的编码来解码脚本文件。如果该页面也是UTF-8,也没问题。

答案 1 :(得分:0)

搜索Javascript标准 http://www.ecma-international.org/ecma-262/5.1/

Enable UTF-8 encoding for JavaScript

然而,您所看到的是,utf-8得到了广泛的支持,并且正确地用于在网络上提供的资源。

是的,您可以使用utf-16,ASCII等对其进行编码,但必须得到客户端程序的支持。