Подтвердить что ты не робот

Bash: конвертировать не-ASCII-символы в ASCII

Как преобразовать строку типа Žvaigždės aukštybėj užges или äüöÖÜÄ в Zvaigzdes aukstybej uzges или auoOUA, соответственно, используя Bash?

В основном я просто хочу преобразовать все символы, которые не находятся в латинском алфавите.

Спасибо

4b9b3361

Ответ 1

В зависимости от вашего устройства вы можете попробовать выполнить строчку строк через

iconv -f utf-8 -t ascii//translit

(или независимо от вашей кодировки, если это не utf-8)

Ответ 2

Возможно, вы сможете использовать значок.

Например, строка:

Žvaigždės aukštybėj užges или äüöÖÜÄ

находится в файле testutf8.txt, в формате utf8.

Запуск команды:

iconv -f UTF8 -t US-ASCII//TRANSLIT testutf8.txt

приводит к:

Zvaigzdes aukstybej uzges или auoOUA

Ответ 3

echo Hej på dig, du den dära | iconv -f utf-8 -t us-ascii//TRANSLIT

дает:

Hej pa dig, du den dara

Ответ 4

 try {
        String name = "Žvaigždės aukštybėj užges ";
        String s1 = Normalizer.normalize(name, Normalizer.Form.NFKD);
        String regex = "[\\p{InCombiningDiacriticalMarks}\\p{IsLm}\\p{IsSk}]+";

        String s2 = new String(s1.replaceAll(regex, "").getBytes("ascii"), "ascii");

    } catch (UnsupportedEncodingException e) {
    }