-4

我在解码和编码字符串时遇到问题,

我的程序从响应 Web 服务读取字符串值Hungr\u00EDa,然后我需要将此值转换为Hungría.. 我无法理解如何工作。但是当我将字符串发送到 web 服务请求时,我需要将值编码HungríaHungr\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
4

1 回答 1

5

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

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

于 2013-04-27T19:54:24.220 回答