Bash: конвертировать не-ASCII-символы в ASCII Как преобразовать строку типа Žvaigždės aukštybėj užges или äüöÖÜÄ в Zvaigzdes aukstybej uzges или auoOUA, соответственно, используя Bash? В основном я просто хочу преобразовать все символы, которые не находятся в латинском алфавите. Спасибо Ответ 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) { }
Ответ 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) { }