java - 如何在 Android 中实现自定义文本编码?
问题描述
我想用我自己的文本编码/解码方法显示一种语言(英语除外)。我有我的二进制数据库,其中每个字母表示为 16 位。我也有可用于字符集映射的信息。
问题是有一些额外的字母超出了标准的 unicode 可以显示的范围。所以我想编写自己的字符编码/解码方法。我还想为字符映射设计自己的字体。
我应该如何在 Android 应用程序中解决这个问题?
解决方案
如何添加自定义字符集
如何添加自定义字符集包含在Ron Hitchens的Java NIO一书中。您可以从支持站点下载Charset 和 CharsetProvider 的示例。请注意,您必须制作一个包含附加的 FQCN 的文件META-INF/services/java.nio.charset.spi.CharsetProvider并将其放入您将制作的文件中。CharsetProvider
jar
您可以在 CustomCharsetProvider 上使用https://stackoverflow.com/a/38768564/3902663中的代码。
如何制作自定义字体文件
您可以使用某些字体编辑器(如FontForge或Birdfont.ttf
)制作与自定义字符集协调的文件。
如何将自定义字体文件添加到应用程序中
我不熟悉原生 Android 应用程序,但似乎您可以使用Calligraphy在 Android 应用程序中使用附加字体。
推荐阅读
- python - 从 Django Redis 缓存中检索数据需要大量时间
- javascript - 替换字符串开头和结尾的某些字符
- r - 了解 R 包安装中的错误
- sql - 在日期函数之间组合字符串后获取 NULL
- go - 使用 GoPacket 解析 GMS 数据包
- palantir-foundry - 是否可以在代码工作簿中的单个节点内渲染多个绘图?
- python - 安装和运行 Selenium、Pycharm 时出错
- javascript - 反应 useContext useReducer 状态 Hooks 错误
- android - 如何提高像素绘制过程的性能?
- javascript - 为什么我的 flatlist 在过滤时不会再次呈现我的组件?