从ISO-8859-1字符中获取实际字符

时间:2012-03-03 07:00:59

标签: java utf-8 character-encoding iso-8859-1

我有一个文字:

Á example link.

ISO-8859-1 ÁÁ

现在,我尝试使用以下代码将Á转换为Á

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

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

CharBuffer data = iso88591charset.decode(inputBuffer);

ByteBuffer outputBuffer = utf8charset.encode(data);
byte[] outputData = outputBuffer.array();
return new String(outputData);

但它没有将Á转换为Á

有任何方法可以达到这个目的吗?

另外我想知道,给定一个String我们可以确定它是哪个Charset吗?

1 个答案:

答案 0 :(得分:5)

我认为您将字符编码(UTF-8,ISO-8859-1 ...)与HTML字符实体(ÁÖ et.c。)混淆。

查看Apache Commons unescapeHtmlStringEscapeUtils功能,我认为它会做你想做的事。