【问题标题】:German character ü converted to question mark in the REST response德语字符 ü 在 REST 响应中转换为问号
【发布时间】:2015-09-16 05:44:48
【问题描述】:

我对 REST Web 服务非常陌生。我在 REST 服务响应中获取德语字符 ü 时遇到问题。

当数据从 web 服务方法返回时,它正确地具有字符,但当它到达调用者时,它被转换为垃圾。

任何输入都会有所帮助。谢谢

【问题讨论】:

    标签: web-services rest jax-rs jax-ws


    【解决方案1】:

    这似乎是使用其他编码错误处理 unicode 数据的问题。请确保在您的响应的 Content-type 标头中包含 charset=utf-8。假设响应内容类型为 json,则内容类型标头应为 Content-type:"application/json"; charset=utf-8。此外,客户端需要以正确的编码呈现响应数据。

    【讨论】:

    • 感谢您的回复。所有地方都使用 UTF-8 正确编码为格式。实际上它在某些情况下有效。在它工作的情况下,我看到要返回的对象(PO​​JO)由 ObjectWriter(Jackson 类)的 writeValueAsString 转换为字符串,然后在返回之前包装在 ResponseEntity (由 Spring 提供)中。在它不起作用的情况下,我看到响应以纯字符串形式返回。这会有什么不同吗?
    • 您是否发送内容类型标头作为响应,将响应标识为 unicode 数据
    • 另外看看能不能用unicode字符串对象代替纯字符串,java中是否有这样的区别
    • 我看到,当我将响应包装在 ResponseEntity (由 Spring 提供)中并通过将其传递给 ResponseEntity 的构造函数来添加标头时,它可以工作。不确定有什么区别。区别。编辑原始问题。
    猜你喜欢
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 2014-11-10
    • 2019-06-08
    • 2020-12-04
    • 2019-09-27
    相关资源
    最近更新 更多