2009-12-29 13 views
26

को गैर- ASCII वर्ण कन्वर्ट मैं Žvaigždės aukštybėj užges या äüöÖÜÄZvaigzdes aukstybej uzges या auoOUA को इस तरह की स्ट्रिंग कैसे परिवर्तित कर सकते हैं, क्रमशः, बैश का उपयोग कर?बैश: ASCII

मूल रूप से मैं केवल उन सभी वर्णों को परिवर्तित करना चाहता हूं जो लैटिन वर्णमाला में नहीं हैं।

धन्यवाद

उत्तर

48

अपने मशीन आप

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

के माध्यम से अपने तार पाइप कोशिश कर सकते हैं पर निर्भर करता है (या जो भी अपने एन्कोडिंग है, यह utf-8 नहीं है अगर)

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

देता है:

Hej pa dig, du den dara 
12

आप iconv का उपयोग करने में सक्षम हो सकते हैं।

उदाहरण के लिए, स्ट्रिंग:

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

फ़ाइल testutf8.txt, UTF8 प्रारूप में है।

रनिंग आदेश:

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

परिणामों में:

Zvaigzdes aukstybej uzges या 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

कि पार्टी है? मुझे ऐसा नहीं लगता ... – watain

+0

@watain – guitarflow

+3

के साथ सहमत है इसकी आलोचना करना आसान है, लेकिन एक नौसिखिया ने प्रयास किया, चिल्लाया और अब एसओ छोड़ दिया है। [धीमी झपकी ..] और हम iconv के बिना क्या करेंगे? – geotheory