Java 在REST中对请求和响应进行编码

Java 在REST中对请求和响应进行编码,java,spring,rest,Java,Spring,Rest,我正在尝试使用Spring3构建REST服务。此服务接受字符串并将其翻译为其他语言,例如,它将源代码转换为英语并将其翻译为中文 @RequestMapping(value="/dosometranslation", method = RequestMethod.POST, produces = "application/json; charset=utf-8") public @ResponseBody String transla

我正在尝试使用Spring3构建REST服务。此服务接受字符串并将其翻译为其他语言,例如,它将源代码转换为英语并将其翻译为中文

@RequestMapping(value="/dosometranslation",
                method = RequestMethod.POST,
                produces = "application/json; charset=utf-8")
public @ResponseBody String translateandreturn() {
  return execute("This", TranslationEnginetouse);

我在上面的代码我正在试着用中文翻译这个。我的问题是,我得到的回复类似于
æ­
,这似乎不是有效的中文字符。

返回字符串
æ­­
告诉我这可能是某个地方的unicode失败。但是,不确定如何修复:(你确定翻译引擎返回UTF-8而不是UTF-16吗?UTF-8对中文来说是一种糟糕的编码,因为它会对与UTF-16相同的数据使用更多的字节
执行什么(“This”,TranslationEnginetouse)
在非REST应用程序中返回?@ChristianKuetbach:UTF-8为baid是有争议的。请参阅例如。无论如何,在这种情况下,服务可能返回UTF-16。请运行命令
curl-vshttp://my/rest/service/ |hextump-C
(在Linux/Unix或Cygwin上,带有服务的URL),并将输出复制/粘贴到您的问题中。然后我们将看到您收到了什么。