6

次のような文字がたくさんあります。

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

そして時々私はこのようなミックスを持っています:

Généralités

最初は次のように変換されます。

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

そして2番目に:

ジェネラルリテ

ブラウザを使用してこれを表示し、本文に配置できます。

しかし、どうすれば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) )
}
4

1 に答える 1

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 )
于 2012-03-14T14:56:39.457 に答える