是否可以使用Unicode输入Furigana(和Ruby字符)?

JHo*_*zer 5 unicode lua string-formatting coronasdk ruby-characters

我目前正在制作一个Corona应用,我想在其中添加日语文本。对于不认识的人来说,日语似乎有多种语言可以写文字(汉字,平假名等)。Furigana是一种在平假名中包含汉字字符和平假名的方法(或Ruby字符)。有关示例,请参见本页上的Ruby幻灯片。

我正在寻找在我的应用程序中使用Furigana的方法。我希望有一种使用Unicode的方法。好吧,我偶然发现了Interlinear注释字符,并在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)
Run Code Online (Sandbox Code Playgroud)

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

错误的假名结果

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

我检查了此Unicode报告中的“ Interlinear Annotation Characters”部分,但术语对我来说太厚了,无法理解他们要说的内容。它们是否暗示着在常规实践中不应使用此类字符?如果是这样,那么先前有关Unicode Ruby字符的资源会产生误导。

一二三*_*一二三 5

Interlinear Annotation Characters 是用于注释文本的通用工具(如 Furigana、Bopomofo 或其他语音指南),但 Unicode 标准没有指定它们应该如何解释或呈现。也就是说,您可能必须自己为它们实现渲染支持,因为大多数库不知道如何处理它们。

使用已经支持呈现 Ruby 文本的更高级别的协议可能会更容易。例如,如果您有权访问可以呈现 HTML 的 API,则可以使用<ruby>/<rt>标签——它具有明确定义的呈现语义。

  • @NoThatIsTeal Unicode 一般来说,旨在促进交换而不是布局。像这样布置文本时有很多设计选择,这超出了字符编码的范围。你可以在[原始提案](https://www.unicode.org/L2/L1998/98055.pdf)和[技术报告](https://www.w3.org/TR/ unicode-xml/#Interliner)。 (2认同)