我可以并且应该使用本地化的 UTF-8 字符存储键值对吗?
Posted
技术标签:
【中文标题】我可以并且应该使用本地化的 UTF-8 字符存储键值对吗?【英文标题】:Can and should I store key-value pairs with localized UTF-8 characters? 【发布时间】:2022-01-05 03:25:32 【问题描述】:好的,关于 JSON 和 UTF-8/unicode 编码的问题。我的简单堆栈是后端:MongoDB + GraphQL,前端:Flutter 应用程序。
毫无疑问,在存储数据并稍后在应用程序中解析数据时,对于像 "firstName":"Oscar"
这样的数据模型,有一个用英文命名事物的国际编码标准,这很好。
但是,如果我的项目的代码仅打算由其他母语编码员(在本例中为瑞典语)审查和完成其他工作,那么将数据模型字段命名为 "fornamn":"Oscar"
或甚至在存储、获取或解析 JSON 到 MongoDB 文档、GraphQL 解析器和 Flutter dart 类模型时使用 Unicode 键 "förnamn":"Oscar"
?
我为什么要本地化存储它? - 因为一些字段和数据结构在用母语进行心理建模时更有意义,更容易概念化,而不是来回翻译成英语。
【问题讨论】:
【参考方案1】:使用带有 Unicode 字符的 JSON 非常好。这也适用于 JSON 对象中的键。我看不出有什么理由不这样做。
应始终使用 Unicode 编码(最好是 UTF-8)保存/传输 JSON。如果使用非 Unicode 编码,则 JSON 需要使用转义序列来重写该编码中不可用的字符。这同样适用于键和其他 JSON 元素。
【讨论】:
以上是关于我可以并且应该使用本地化的 UTF-8 字符存储键值对吗?的主要内容,如果未能解决你的问题,请参考以下文章