【问题标题】:JavaScript Unicode standard formatJavaScript Unicode 标准格式
【发布时间】:2020-01-06 07:02:57
【问题描述】:

是否有关于如何在 JavaScript/JSON 中编写 Unicode 字符的标准? 比如\u011b\u011B有什么区别吗?大多数网络示例使用第二种格式。此外,还可以选择以\xe1 等短格式写入 ASCII 字符。哪种格式更可取(标准)。将这些格式混合在一起是一种好习惯吗?性能如何?

【问题讨论】:

  • \xe1 在 JSON 中无效(它是 ISO 8859-1,而不是 ASCII)。把角色写成角色也可以。

标签: javascript json unicode unicode-escapes


【解决方案1】:

对于第一个问题:两个版本都有效。它更像是一种编码约定,您应该更喜欢文件/项目中已经使用的约定。然后检查您的社区(您大量使用的其他程序所使用的约定,他们喜欢什么,作为最后一个选项,您可以选择一种方式。但无论如何,请保持一致。

就代码而言,我个人不喜欢它们中的任何一个:UTF-8 使用如此广泛,浏览器应该能够理解它,所以我会直接输入正确的字符(作为字符,而不是作为转义序列)。如果代码点很重要,我会将其添加到评论中。预计所有开发人员和工具都将具有 UTF-8 编辑器。

Javascript 使用 UCS-2,因此是 UTF-16 的前身,但考虑到 unicode 代码点长度仅为 16 位(因此某些表情符号会使用两个字符)。

字节格式不应该用于文本:它隐藏了含义。有例外:例如检查您从用户那里获得的编码,或者您是否有 BOM。 [但仅用于签名]。对于其他二进制情况,可以使用\x1e 转义,例如用于密钥识别。

注意:您应该真正遵循一个编码准​​则。谷歌搜索它,你会发现很多,例如这个来自谷歌(可能太多了):https://google.github.io/styleguide/jsguide.html

【讨论】:

  • “如果代码点很重要,我会将其添加到注释中。”不幸的是,JSON 中没有明确的注释语法。
  • @Pac0:对,我忘了 JSON。 OTOH 通常 JSON 只是一种传输方式,因此可以在原始代码中添加注释。 [或者对于配置文件,可以使用“_field_note”字段(但很难看,因此只能在非常重要的 cmets 上使用)。我将在问题中添加 JSON 标记,不要错过这一点
猜你喜欢
  • 1970-01-01
  • 2013-01-15
  • 2020-12-13
  • 2019-03-26
  • 2021-07-06
  • 1970-01-01
  • 2012-03-26
  • 1970-01-01
相关资源
最近更新 更多