Java преобразует поток символов в человеческую" читаемую " строку



У меня есть куча персонажей, которые выглядят примерно так:



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


И иногда у меня есть такая смесь:



Généralités


Первый переводится как:

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



И второй к:



Généralités



Я могу увидеть это с помощью браузера и поместить их в тело.



Но как я могу заставить java выводить "реальные" символы ? Как называется приведенная выше кодировка?



Я пробовал пара вещей и, наконец, это (что не сработало):



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

List<String> lst = new ArrayList<String>(); lst.add("К"); lst.add("о");
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) )
}
555   1  

1 ответ:

Вы можете использовать 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 )

Comments

    Ничего не найдено.