2012-04-04 6 views
6

मैं एएससीआईआई में मूल रूप से उपलब्ध अक्षरों के लिए मूल पाठ को एएससीआईआई में परिवर्तित करने के लिए एक लाइब्रेरी (अपाचे/बीएसडी/ईपीएल लाइसेंस प्राप्त) खोज रहा हूं (मूल रूप से java.util.Properties करता है) ।देशी 2ascii को परिवर्तित करने के लिए लाइब्रेरी और इसके विपरीत

मैं एक नज़र था और वहाँ किसी भी आसानी से उपलब्ध पुस्तकालयों होने लगते हैं नहीं है। मैंने पाया:

किसी को भी एक पुस्तकालय के बारे में पता ऊपर के तहत है कहा लाइसेंस?

उत्तर

10

आप एक CharsetEncoder के साथ ऐसा कर सकते हैं। आपको 'मूल' टेक्स्ट को यूनिकोड में सही एन्कोडिंग के साथ पढ़ना होगा। की तुलना में आप, पता लगाने के लिए एक 'अमेरिका-ASCII'-एनकोडर उपयोग कर सकते हैं जो वर्ण यूनिकोड पलायन में अनुवाद किया जा सकता है।

import java.nio.charset.Charset; 
import java.nio.charset.CharsetEncoder; 

import org.junit.Test; 

public class EncodeToEscapes { 

@Test 
public void testEncoding() { 
    final String src = "Hallo äöü"; // this has to be read with the right encoding 
    final CharsetEncoder asciiEncoder = Charset.forName("US-ASCII").newEncoder(); 
    final StringBuilder result = new StringBuilder(); 
    for (final Character character : src.toCharArray()) { 
     if (asciiEncoder.canEncode(character)) { 
      result.append(character); 
     } else { 
      result.append("\\u"); 
      result.append(Integer.toHexString(0x10000 | character).substring(1).toUpperCase()); 
     } 
    } 
    System.out.println(result); 
} 
} 

इसके अतिरिक्त org.apache.commons: कॉमन्स-लैंग StringEscapeUtils.escapeJava() जो बच और देशी तार unescape कर सकते हैं।

+0

Thx, कि एक और तरीका है। मैं अभी भी क्या विश्वास नहीं कर सकता कि यह पहले से ही किसी अन्य उपलब्ध लाइब्रेरी में नहीं किया गया है। इसके अतिरिक्त दूसरे तरीके से भी विचार किया जाना चाहिए। –

+3

आप Apache Commons से StringEscapeUtils इस्तेमाल कर सकते हैं: println (StringEscapeUtils.escapeJava ("Halloäöü")); एक संबंधित unescapeJava भी है। यहां पाया जा सकता: http://commons.apache.org/lang/ – Andreas

+1

धन्यवाद, एंड्रियास। StringEscapeUtils ने वही किया जो मैं खोज रहा था। ऐसा लगता है कि यह सवाल उठाने का एक अच्छा जवाब भी होगा। – Calon

3

अपाचे कॉमन्स-लैंग से कोड के इस टुकड़े का प्रयास करें:

StringEscapeUtils.escapeJava("ایران زیبای من"); 
StringEscapeUtils.unescapeJava("\u0627\u06CC\u0631\u0627\u0646 \u0632\u06CC\u0628\u0627\u06CC \u0645\u0646"); 
संबंधित मुद्दे

 संबंधित मुद्दे