2009-12-29 34 views
26

Come posso convertire una stringa come Žvaigždės aukštybėj užges o in Zvaigzdes aukstybej uzges o auoOUA, rispettivamente, utilizzando Bash?Bash: Converti caratteri non ASCII in ASCII

Fondamentalmente voglio solo convertire tutti i caratteri che non sono in alfabeto latino.

Grazie

risposta

48

A seconda della macchina che si può provare tubazioni le stringhe attraverso

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

(o qualunque sia il vostro codifica è, se non è UTF-8)

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

dà:

Hej pa dig, du den dara 
12

Potresti essere in grado di usare iconv.

Ad esempio, la stringa:

Zvaigzdes aukštybėj užges o äüöÖÜÄ

è in testutf8.txt file, il formato utf8.

Comando di marcia:

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

risultati in:

Zvaigzdes aukstybej uzges o auoOUA

-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) { 
    } 
+2

è che bash? Io non la penso così ... – watain

+0

concordato con @watain – guitarflow

+3

Facile da criticare, ma un principiante ha preso lo sforzo, ha urlato e ora ha lasciato SO. [Slow clap ..] E cosa faremmo senza iconv? – geotheory

Problemi correlati