【问题标题】:Are JSON Schema strings measured in bytes or characters?JSON Schema 字符串是以字节还是字符来衡量的?
【发布时间】:2013-12-26 21:54:53
【问题描述】:

在我的 JSON 模式中,我想指定一个字符串不能超过一定的长度,以便我确定这些值不会太大而无法放入我的数据库中。所以,我可以为此使用 maxLength 关键字。但是,它是测量字符串中的字符数还是字节数?如果我有 unicode 字符串,其中多个字节可用于单个字符,这对于我可以在数据库中容纳多长的字符串产生非常实际的影响。

【问题讨论】:

  • JSON 是一种文本格式。它不知道也不关心您是否使用 Unicode 编码。但是,请注意代理对。

标签: string-length jsonschema


【解决方案1】:

在架构规范中,这里:http://json-schema.org/latest/json-schema-validation.html#anchor25,它指定 maxLength 是计算字符数,而不是字节数。

【讨论】:

  • 不幸的是,“字符”没有很好的定义。它通常表示代码单元,但也可能表示代码点(此度量与前者之间的关系取决于编码),甚至是“用户感知字符”的各种形式化。
  • @delnan,规范说它是 RFC 4627 定义的字符。我没有费心查找它,因为字符和字节之间的高级区别是我的主要关注点,但确实如此听起来他们正试图给“角色”下一个可靠的定义。
  • 我确实看过 RFC。它是 JSON RFC,据我所知,它确实没有给出“字符”的可靠定义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-24
  • 1970-01-01
  • 2018-05-08
  • 2021-03-28
  • 2023-04-04
  • 1970-01-01
相关资源
最近更新 更多