【发布时间】:2015-02-20 14:48:16
【问题描述】:
我正在使用 Java Spring Resttemplate 通过获取请求获取 json。我得到的 JSON 有一些奇怪的东西,而不是像 ü ö ä 或 ß 这样的特殊字符。所以我猜字符编码有问题。我在互联网上找不到任何帮助。我现在使用的代码是:
String json = restTemplate.getForObject(
overPassStatementPostCode,
String.class,
params);
【问题讨论】:
-
什么是overPassStatementPostCode?请发布更多代码,包括您对应的 POJO。
-
您正在设置
String.class,它将使用StringHttpMessageConverter。您可以尝试使用MappingJackson2HttpMessageConverter。例如。 ` ArrayList> messageConverters = new ArrayList >(); messageConverters.add(new MappingJackson2HttpMessageConverter()); restTemplate.setMessageConverters(messageConverters); ` -
看源码,我们也可以把charset传给StringHttpMessageConverter(),可以传
UTF-8charset,因为defaultCharSet是ISO-8859-1 -
对不起,我不明白如何在代码中设置 charSet。 overPassStamementPostCode 只是一个带有占位符的字符串。它被 params Map 中的参数填充。
-
我可以用这样的代码创建一个 StringMessageConverter: StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter(Charset.forName("UTF-8"));但我只是找不到如何将他的转换器与我的 http get 请求一起使用的方法。感谢您的帮助。
标签: java json utf-8 character-encoding resttemplate