我的数据库中有本地字体的数据。我可以在 php 中成功提取它(在网页中显示相同的本地单词)。现在,我想使用 JSON 发送这些数据,以便 Android 应用程序可以访问它。在 JSON 中编码时,是否可以使用不同字体的 unicode 进行编码?
检索 JSON 编码值后,单词可以以字体 A 显示(但格式不完整)。但我想使用字体 B 来展示它(以便在此解决损坏的东西)。
那么,有什么方法可以使用不同的字体进行编码,以便我可以解决我的问题?
谢谢。
根据定义,JSON 必须以 UTF-8 编码。
当您谈论字体时,我假设您正在谈论编码 - 文本本身并没有指定将使用哪种字体在用户屏幕上呈现它。最好的选择是始终以 UTF-8 存储您的数据,这样您就不必重新编码任何内容。默认情况下,所有开源数据库(PostgreSQL、MySQL 等)都提供了一种以 UTF-8 存储文本的方法。此外,Android 默认对所有字符串(JSON、XML 等)使用 UTF-8。
如果您的数据以某些旧编码(如 CP1250 或 CP1251)进行编码,则应在创建 JSON 之前使用适当的方法将该编码转换为 UTF-8。几乎每个平台都提供了这种转换的方法。用于此的流行库之一是iconv(它具有 PHP、C/C++ 等的绑定),但我相信还有许多其他方法可以实现这一点。
那么,有什么方法可以使用不同的字体进行编码,以便我可以解决我的问题?
不可以。Unicode 字符串只包含纯语义文本。其中没有允许您选择不同字体的标记结构;必须由文本上方的层提供,例如 HTML。
该单词可以以字体 A 显示(但格式不完整)。但我想使用字体 B 来展示它(以便在此解决损坏的东西)。
使用 JSON 并从中显示数据的应用程序必须更改为使用字体 B 显示。
请注意,Android 对印度语脚本的支持历来是出了名的差,并且仍然存在错误;在 4.x 系列之前,您可能会丢失任何类型的字体 B 甚至是正确的天城体字形布局。