2013-07-02 6 views
3

Perl 5 имеет модуль CPAN с именем Text::Unidecode, который транслитерирует Unicode в ASCII. Так, например, если вы передадите ему строку "“北亰 — it’s the best”", она вернет строку "\"Bei Jing -- it's the best\"". Быстрый поиск библиотек Java для выполнения того же самого действия привел к тому, что код, который запретил бы символы Unicode, или превратил акцентированные символы в символы без акцента.Есть ли библиотека Java, такая как Perl 5 Text :: Unidecode?

Кто-нибудь знает о библиотеке Java, которая производит аналогичный вывод для Text::Unidecode?

+1

Просто следует помнить, что реализованный алгоритм настолько чрезмерно упрощена, что я не могу честно представить себе любое разумное использование этого библиотека "транслитерации". Чтобы транслитерировать текст с использованием нелатинских символов на латинские символы, вам нужно, по крайней мере, знать исходный и целевой языки, потенциально, какую систему транслитерации использовать, а в некоторых случаях даже неявное знание контекста, что делает автоматизированный перевод практически невозможным. – jarnbjo

+0

Тот, кто голосовал, чтобы закрыть этот вопрос, якобы прося «рекомендовать инструмент, библиотеку или любимый ресурс вне сайта»: этот вопрос не вызывает умиротворенных дебатов. Он спрашивает, существует ли подобная библиотека (основанная на фактах), а не какая библиотека * best/favorite * (основанная на мнениях). Этот вопрос должен оставаться открытым, чтобы альтернативные библиотеки могли предоставляться в качестве ответов. – amon

+0

@jarnbjo Сообщение прерывается при передаче между двумя базами данных. Коррупция происходит только с символами, отличными от ASCII. Хотя исправление для коррупции исследуется, желательно, чтобы сообщения были удобочитаемыми. Язык почти 100% английский (может быть, немного испанский), и мы в основном имеем дело с проблемами с тире, кудрявыми цитатами и т. П., Но я хотел получить более полное стоп-решение, которое не просто лишало бы обидных символов. –

ответ

1

Быстрый Google говорит: http://junidecode.sourceforge.net/ - но похоже, что он не был обновлен какое-то время.

+1

Учитывая, что версия Perl 5 не изменилась с 2001 года, я сомневаюсь он будет нуждаться в обновлениях после его работы. –

+0

Не уверен в этом. Поддержка Java Unicode прошла несколько изменений за последние несколько лет - я сомневаюсь, что библиотека на 2010 год способна поддерживать все, что есть на современной платформе, и я понимаю, что это нетривиальная проблема. – kittylyst

0

Для Java существует другая библиотека: unidecode.

Использование с Gradle:

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

Использование с Maven:

<dependency> 
    <groupId>cz.jirutka.unidecode</groupId> 
    <artifactId>unidecode</artifactId> 
    <version>1.0.1</version> 
</dependency> 

 Смежные вопросы

  • Нет связанных вопросов^_^