是否可能使用Unicode输入振假名(和Ruby字符)?

我目前正在制作一个 Corona 应用程序,其中我希望包含日文文本。对于那些不知道的人,似乎日语有多种编写文本的语言(汉字,平假名等)。挂注是一种将汉字与平假名混合使用的方式,看起来就像是子文本(或Ruby字符)。请参见此页面 上的 Ruby 幻灯片,以获取示例。

我正在寻找一种在我的应用程序中使用Furigana的方法。我希望有一种使用 Unicode 的方法来实现它。好吧,我偶然发现了挂注字符并在 Corona 中使用 unicodeToUtf8LastResort 字体进行了测试,结果如下:

    local iaAnchor = unicodeToUtf8(0xfff9)
    local iaSep = unicodeToUtf8(0xfffa)
    local iaTerm = unicodeToUtf8(0xfffb)
    local options = {
        parent = localGroup,
        text = iaAnchor .. "漢" .. iaSep .. "かん" .. iaTerm .. iaAnchor .."字" .. iaSep .. "じ" .. iaTerm,
        x = 285,
        y = 195,
        font = "LastResort",
        fontSize = 24,
    }
    local testText = display.newText(options)

不幸的是,我没有成功,最终得到了这样的结果:

Bad Furigana Results

所以,我的问题是,*是否有可能使用 Unicode 实现Furigana(和Ruby字符)效果?或者这不是 Unicode 中实际可用的功能?我只是想确保我不会浪费时间来尝试让这些东西工作。

我查看了此 Unicode 报告 中的挂注字符部分,但术语对我来说有点太深奥,我不明白他们想说什么。他们暗示这些字符在常规实践中不应使用吗?如果是这样,那么之前关于Unicode Ruby Characters 的资源有点误导人。

点赞
用户596219
用户596219

Interlinear Annotation Characters是一个通用的用于注释文本的工具(如Furigana、Bopomofo或其他音标指南),但Unicode标准并未规定它们应该如何被解释或呈现。也就是说,你可能需要自己实现对它们的呈现支持,因为大多数库不知道该怎么处理它们。

使用一个已经支持呈现Ruby文本的更高层次的协议可能更容易些。例如,如果你可以访问一个能够呈现HTML的API,你可以使用<ruby>/<rt>标签——这些标签有明确定义的呈现语义。

2015-06-23 18:43:37