понизить не-ascii символы до ближайшего 7-битного эквивалента ASCII (предпочтительно Java) - PullRequest
5 голосов
/ 28 июля 2010

Есть ли какое-нибудь простое / легкое решение для замены хотя бы некоторых символов, не относящихся к ASCII, на соответствующие аналоги ASCII? Например, эта строка

abc-åäö.txt

следует изменить на

abc-aao.txt

Немного предыстории: Zip-инструменты не надежно поддерживают UTF-8, поэтому необходимо понизить версию. AFAICR Функция «скачать вложения в виде одного zip-файла» в Google заменяет все символы, отличные от ascii, символом «_».

PS: код может быть написан на каком-то другом языке, если это более или менее понятно, я перенесу его на Java. PPS: мой первый вопрос на данный момент, так что, пожалуйста, не минуйте меня под землей, хорошо?

Ответы [ 5 ]

4 голосов
/ 28 июля 2010

Посмотрите на java.text.Normalizer.Это может помочь вам с преобразованием эквивалентных символов: http://en.wikipedia.org/wiki/Unicode_equivalence

1 голос
/ 28 июля 2010

Похоже, что проблема решена здесь -

[решение] [как] Преобразование специальных символов в обычные символы (от Ã до e) http://www.ramonfincken.com/permalink/topic192.html

1 голос
/ 28 июля 2010

Может быть это подойдет?

0 голосов
/ 07 января 2017

Если вы захотите использовать python, есть довольно хороший пакет python под названием unidecode , который может получить транслитерации ASCII текста в Юникоде.

0 голосов
/ 28 июля 2010

Хорошо, нашел что-то более или менее работающее в этом вопросе: PHP: заменить умлауты ближайшим 7-битным эквивалентом ASCII в строке UTF-8

...