使用Java解码和解码UTF-8

时间:2013-04-27 19:42:00

标签: java unicode

我在解码和编码String时遇到问题,

我的程序从Response webservice读取字符串值Hungr\u00EDa,然后我需要将此值转换为Hungría ..我无法理解如何工作。但是当我将字符串发送到webservice请求时,我需要将值Hungría编码为Hungr\u00EDa

String input = "Hungr\u00EDa";
logger.info("UTF8test.decodeUTF8: "+new String(input.getBytes(),Charset.forName("UTF-8"))); //output is Hungr?a, updated to UTF-8

1 个答案:

答案 0 :(得分:5)

我的印象是你还不清楚UTF-8是什么,不是什么。

最有可能的是,输出实际上是UTF-8(至少如果你修正了错字。考虑使用更短的线路!)。但Hungr\u00EDa 不是UTF-8 。假设您以UTF-8访问stackoverflow,Hungría是。 \u00ED的内容不是 UTF-8。这是一个基于UTF-8的不同的编码,我称之为“反斜杠转义 - unicode”。请参阅:00ED可能是您想要的字符的十六进制 unicode 字符代码。此字符的UTF-8编码是两个字节0xC3 0xAD,而在HTML中,它将编码为í