2013-07-02 21 views
3

Perl 5在CPAN上有一个名为Text::Unidecode的模块,它将Unicode转换为ASCII。因此,例如,如果您将字符串"“北亰 — it’s the best”"交给字符串,它将回传字符串"\"Bei Jing -- it's the best\""。快速搜索Java库以执行相同的操作只会导致代码消除Unicode字符或将重音字符变为非重音字符。是否有像Perl 5的Text :: Unidecode这样的Java库?

有谁知道产生类似输出到Text::Unidecode的Java库吗?

+1

要知道,在实施的算法是这样过于简单,我不能诚实地想象任何合理的利用这“音译”库。要将使用非拉丁字符的文本音译为拉丁字符,您至少需要了解源语言和目标语言,可能使用哪种音译系统,某些情况下还需要隐式语境知识,这使得自动翻译几乎不可能。 – jarnbjo

+0

谁投票结束这个问题,因为涉嫌要求“推荐一个工具,图书馆或最喜欢的非现场资源”:这个问题并没有引发有争议的辩论。它询问是否存在类似的图书馆(基于实际),而不是最佳/最喜欢的图书馆(基于意见)。这个问题应该保持开放,以便可以提供替代图书馆作为答案。 – amon

+0

@jarnbjo在两个数据库之间传输时,消息正在损坏。损坏只发生在非ASCII字符上。尽管正在研究修复腐败问题,但希望这些消息具有可读性。这种语言几乎是100%英语(也许是一些西班牙语),我们主要处理电邮,报价等问题,但我想要一个更完整的权宜之计解决方案,而不仅仅是去除违规角色。 –

回答

1

一个快速谷歌说:http://junidecode.sourceforge.net/ - 但看起来它没有更新一段时间。

+1

鉴于Perl 5版本自2001年以来没有改变,我怀疑一旦它工作,它将需要更新。 –

+0

不确定。 Java的Unicode支持在过去几年中经历了不少修订 - 我怀疑2010年的图书馆是否能够支持现代平台的一切,我的理解是这是一个不平凡的问题。 – kittylyst

0

还有另一个Java库:unidecode

使用带有摇篮:

compile 'cz.jirutka.unidecode:unidecode:1.0.1' 

使用与Maven:

<dependency> 
    <groupId>cz.jirutka.unidecode</groupId> 
    <artifactId>unidecode</artifactId> 
    <version>1.0.1</version> 
</dependency> 
相关问题