我在解码和编码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
答案 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中,它将编码为í
。