【问题标题】:Transliteration of Unicode in Java without using of Google Api?不使用 Google Api 的 Java Unicode 音译?
【发布时间】:2012-09-06 05:33:45
【问题描述】:

有没有从英文 unicode 到 Gujarati unicode 的解决方案? 假设 a = \u0061 的 unicode 那么它将翻译 અ = u0095

【问题讨论】:

  • 音译的意思是用另一个字母表中的一些字母替换字母,所以在编程意义上,它是非常简单的字符串操作(逐个字符读取字符串,以表格驱动的方式输出字符)。根据音译方案,可能会出现复杂情况。但是您会采用哪种方案,那么您认为有什么问题呢?
  • 字符代码U+0095错误。显然你想要的是 U+0A85。其他字符应该如何音译不明显;您能否链接到规范、实现或一些其他示例? fileformat.info/info/unicode/char/a85/index.htm

标签: java unicode unicode-string transliteration


【解决方案1】:

Unicode CLDR 提供的文件包含有关如何从拉丁语音译为古吉拉特语的说明。转换说明位于 .XML 文件中,使用 Locale Data Markup Language

Latin-Gujarati 涉及:

  1. 将字符串过滤为由

    描述的字符或字符范围

    ['.0-9A-Za-z~À-ÅÇ-ÏÑ-ÖÙ-Ýà-åç-ïñ-öù-ýÿ-ďĒ-ĥĨ-İĴ-ķĹ-ľŃ-ňŌ-őŔ-ťŨ-žƠ-ơƯ-ưǍ-ǜǞ-ǣǦ-ǭǰǴ-ǵǸ-țȞ-ȟȦ-ȳʔ́̃-̄̆-̇̐̔-̣̥̱́̈́̕΅-ΆΈ-ΊΌΎ-ΐά-ΰό-ώϓЃЌЎЙйѓќўӁ-ӂӐ-ӑӖ-ӗӢ-ӣӮ-ӯḀ-ẙẠ-ỹἁἃ-ἅἇἉἋ-ἍἏἑἓ-ἕἙἛ-Ἕἡἣ-ἥἧἩἫ-ἭἯἱἳ-ἵἷἹἻ-ἽἿὁὃ-ὅὉὋ-Ὅὑὓ-ὕὗὙὛὝὟὡὣ-ὥὧὩὫ-ὭὯάέήίόύώᾁᾃ-ᾅᾇᾉᾋ-ᾍᾏᾑᾓ-ᾕᾗᾙᾛ-ᾝᾟᾡᾣ-ᾥᾧᾩᾫ-ᾭᾯ-ᾱᾴᾸ-ᾹΆῄΈΉ῎ῐ-ῑΐῘ-ῙΊ῞ῠ-ῡΰῥῨ-ῩΎ-Ῥ΅ῴΌΏK-Å\uE04D\uE064]

  2. 将上一步的结果放入Normal Form D

  3. 小写上一步的结果

  4. 对上一步的结果执行Latin-InterIndic 转换。从文件中可以看出,这已经变得相当复杂了,我不会详细介绍这一步。

  5. 对上一步的结果执行InterIndic-Gujarati。与上一步相同的注释。

  6. 将上一步的结果放入Normal Form C

因此,如果我们对字母 "a" 执行此操作,并直接跳到步骤 4,该步骤描述了以下相关转换:

$wa=\uE005
a→$wa

我们现在有"\uE005"。现在第 5 步:

\uE005→અ

所以我们最终得到了,它在第 6 步之前没有改变。


您可能想查看CLDR Eclipse Setup,但我不确定这些是否只是用于 cldr 维护者的开发工具,而且我实际上不知道是否有人在 java 中为此实现了一个库。

【讨论】:

    猜你喜欢
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    相关资源
    最近更新 更多