Перевод специальных писем на английский - PullRequest
1 голос
/ 01 февраля 2012

Мне интересно, если

  1. существует какой-либо "стандартный" перевод специальных букв, таких как ä, ö, ü, ç, Ñ, Ãæ и т. Д. На английский.Немец наверняка расшифровывает a как ae, но американец, вероятно, просто использует a.Есть ли какой-нибудь стандарт?и
  2. , если да, есть ли в Java какая-либо библиотека, которая охватывает знаки, содержащиеся в кодовых таблицах UTF "Базовая латиница" (u0000-u007F) и "Дополнение Latin-1" (u0080-u00FF)?

Thx

Ответы [ 3 ]

0 голосов
/ 01 февраля 2012

У меня была идея, но она не работает. Это просто полная чушь. Не пытайтесь это сделать.

Я не уверен, существует ли стандарт как таковой.

Одна вещь, которую вы могли бы сделать, это нормализовать символ в форме NFKD, который разбивает все символы до их самых основных элементов, таких как базовые буквы и комбинирующие метки, а затем отфильтровывает только символы ASCII. Для этого потребуется от æ до ae, ä до a и всех других отдельных символов с диакритическими знаками до их базовых символов.

Это не сделает немцев счастливыми.

0 голосов
/ 01 февраля 2012

С помощью нормализатора java вы можете разделить ä на диакритическую метку + со знаком.И тогда вы можете просто удалить все диакритические знаки.

String normalizedString = Normalizer.normalize(s, Normalizer.Form.NFKD);
String ascii = normalizedString.replaceAll("\\p{InCombiningDiacriticalMarks}", "");
0 голосов
/ 01 февраля 2012

Я думаю, что решение вашей проблемы - транслитерация.Проверьте эти ссылки ниже:

Домашняя страница ICU

Класс транслитератора

...