Node.js源代码需要什么编码?

我做了一些Googlesearch,但是我得到了与编码string或文件相关的结果。

我可以用UTF-8 编写我的Node.js JavaScript源代码吗? 我可以在注释,string或variables名称中使用非ASCII字符吗?

ECMA-262似乎需要UTF-16编码 ,但Node.js不会运行UTF-16编码的.js文件。 但是,它将运行UTF-8源并正确解释非ASCII字符。

那么这是devise还是“意外”呢? 它是否指定支持UTF-8源代码?

参考: http : //mathiasbynens.be/notes/javascript-identifiers

UTF-8字符是有效的JavaScriptvariables名称。 继续编码UTF-8。

我无法find说明Node将文件视为以UTF-8编码的文档,但实际上这似乎是这样的:

 /* Check in your editor that this Javascript file was saved in UTF-8 */ var nonEscaped = "Планета_Зямля"; var escaped = "\u041f\u043b\u0430\u043d\u0435\u0442\u0430\u005f\u0417\u044f\u043c\u043b\u044f"; if (nonEscaped === escaped) { console.log("They match"); } 

上面的例子打印They match

非BMP注:

请注意,UTF-8支持非BMP的代码点(U + 10000及以上),但Javascript有复杂的情况下,它会自动将它们转换成代理对。 这是语言的一部分:

 /* Check in your editor that this Javascript file was saved in UTF-8 */ var nonEscaped = "💩"; // U+1F4A9 var escaped1 = "\ud83d\udca9"; if (nonEscaped === escaped1) { console.log("They match"); } /* Newer implementations support this syntax: */ var escaped2 = "\u{1f4a9}"; if (nonEscaped === escaped2) { console.log("The second string matches"); } 

这打印They matchThe second string matches