我有一个文字:
Á 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吗?
答案 0 :(得分:5)
我认为您将字符编码(UTF-8,ISO-8859-1 ...)与HTML字符实体(Á
,Ö
et.c。)混淆。
查看Apache Commons unescapeHtml的StringEscapeUtils功能,我认为它会做你想做的事。