【发布时间】:2013-06-12 14:33:39
【问题描述】:
我的任务是遍历与给定语言(区域设置)对应的所有 utf-8 字符代码。我想这并不容易,我必须遍历字符块(例如,“ru_RU”的整个西里尔字母)。我可以在 wiki 页面https://en.wikipedia.org/wiki/UTF-8 上找到字符块,但我希望有比发明自己的自行车更好的方法。
我看过 icu-project,但我不知道我是否可以做我需要的。
我想要的结果是这样的:
for (unsignet int=UBLOCK_GREEK_EXTENDED; i<UBLOCK_GREEK_EXTENDED_SIZE; i++) {
// do stuff
}
icu-project 是一个非常强大的工具,所以我希望有人知道如何做到这一点:)
更新: 我正在为移动设备的 3D 框架开发本地化选项。它对真字体进行光栅化和编码,因此可以通过从光栅化字体文件中选择所需的图像来轻松渲染它们。由于我必须关心内存量,我想为不同的语言环境(或语言,或像 cirylic 或希腊语的字符块)在不同的文件中拆分光栅化字体,所以我不必将整个 utf-8 字体保留在内存中一直,但只在检测到语言环境后才加载相应的文件。
谢谢!
【问题讨论】:
-
您为什么要这样做,也就是您要解决什么问题? meta.stackexchange.com/questions/66377/what-is-the-xy-problem/…
-
我已在帖子中添加了更新。谢谢你的回答。
-
那么你想要一个给定语言使用哪些字符的列表?
-
这将是最好的选择。 Characters = utf-8 中的字符代码,但我想我可以使用 icu 获取代码。
-
为什么你(单数,作为这个函数的实现者)关心你的调用者使用的是哪个语言环境?您是否尝试在迭代的同时执行验证?您是否认为您需要语言环境信息来判断字符从其高位开始的字节数。