我有一堆字符看起来像这样:
Комуникационна кабелна система
有时我会像这样混合:
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) )
}
答案 0 :(得分:7)
你可以使用commons-lang来解决这类问题。在Groovy中:
@Grab( 'commons-lang:commons-lang:2.6' )
import org.apache.commons.lang.StringEscapeUtils as SEU
def str = 'Généralités'
println SEU.unescapeHtml( str )