2012-03-14 20 views
6

में चरित्र धारा परिवर्तित मैं उस के साथ पात्रों का एक समूह है:जावा मानव "पठनीय" स्ट्रिंग

Комуникационна кабелна система 

और कभी कभी मैं इस तरह एक मिश्रण है:

Généralités 

К о м у н: पहली में तब्दीलк а ц и о н н а к а б е л н а с и с т е м а

और से पीछे नहीं:

जी é n é ralit é रों

मैं इस ब्राउज़र का उपयोग कर और उन्हें शरीर में जगह देख सकते हैं।

लेकिन मैं जावा आउटपुट को "असली" वर्ण कैसे बना सकता हूं? उपरोक्त एन्कोडिंग क्या कहा जाता है?

मैं चीजों की एक जोड़ी की कोशिश की है, और अंत में यह (जो काम नहीं किया):

import java.nio.charset.*; 
import java.nio.ByteBuffer; 
import java.nio.CharBuffer; 

List<String> lst = new ArrayList<String>(); lst.add("&#1050;"); lst.add("&#1086;"); 
for (String s : lst) { 

    Charset utf8charset = Charset.forName("UTF-8"); 
    Charset iso88591charset = Charset.forName("ISO-8859-1"); 

    ByteBuffer inputBuffer = ByteBuffer.wrap(s.getBytes()); 

    // decode UTF-8 
    CharBuffer data = utf8charset.decode(inputBuffer); 

    // encode ISO-8559-1 
    ByteBuffer outputBuffer = iso88591charset.encode(data); 
    byte[] outputData = outputBuffer.array(); 

    System.out.println (new String(outputData)) 
} 
+2

यह HTML-भाग निकले है। –

+0

उन्हें संस्थाएं कहा जाता है। यदि आप इकाई-से-यूनिकोड रूपांतरण की तलाश करते हैं तो आप जो भी खोज रहे हैं उसे मिल सकता है – dldnh

+0

@dldnh स्पष्टीकरण के लिए धन्यवाद! वेब के लिए खोज करने की सबसे आसान चीज़ नहीं है :) – momomo

उत्तर

7

आप commons-lang उपयोग कर सकते हैं बात की इस तरह unescape करने के लिए। ग्रूवी में:

@Grab('commons-lang:commons-lang:2.6') 
import org.apache.commons.lang.StringEscapeUtils as SEU 

def str = 'G&#233;n&#233;ralit&#233;s' 

println SEU.unescapeHtml(str) 
संबंधित मुद्दे