2012-03-14 4 views
6

に文字ストリームに変換する:Javaは、このようなものになります、私はそれと文字の束を持っている人間「読める」文字列

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

を、時々私はこのようなミックスを持っている:

Généralités 

К о м у н:最初に変換к а ц и о н н а к а б е л н е м а

а с и с т及び第2:

G é N é ralit éの

私はブラウザを使用して、これを見ると体にそれらを配置することができます。

しかし、私はJavaの出力を「本当の」文字にすることはできますか?上記のエンコーディングとは何ですか?

は、私は物事のカップルを試してみましたが、最後にこれは(これは動作しませんでした):

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明確化のためにありがとう! Webを検索する最も簡単な方法ではありません:) – momomo

答えて

7

あなたはこの種のものをアンエスケープするcommons-langを使用することができます。 Groovyで:

@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) 
関連する問題