gpt4 book ai didi

java - jersey web 服务 json utf-8 编码

转载 作者:IT老高 更新时间:2023-10-28 20:37:17 27 4
gpt4 key购买 nike

我使用 Jersey 1.11 制作了一个小型 Rest web 服务。当我调用返回 Json 的 url 时,非英文字符的字符编码存在问题。 Xml 的对应 url ("test.xml"使其在起始 xml-tag 中为 utf-8。

如何让 url "test.json"返回 utf-8 编码的响应?

这是服务的代码:

@Stateless
@Path("/")
public class RestTest {
@EJB
private MyDao myDao;

@Path("test.xml/")
@GET
@Produces(MediaType.APPLICATION_XML )
public List<Profile> getProfiles() {
return myDao.getProfilesForWeb();
}

@Path("test.json/")
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Profile> getProfilesAsJson() {
return myDao.getProfilesForWeb();
}
}

这是服务使用的 pojo:

package se.kc.mimee.profile.model;

@XmlRootElement
public class Profile {
public int id;
public String name;

public Profile(int id, String name) {
this.id = id;
this.name = name;
}

public Profile() {}

}

最佳答案

默认情况下, Jersey 应该总是产生 utf-8,听起来问题是你的客户端没有正确解释它(xml 声明没有“制作”它 utf-8,只是告诉客户端如何解析它)。

您发现这些问题的客户是什么?

有效的 JSON 应该只是 Unicode (utf-8/16/32);解析器应该能够自动检测到编码(当然有些不会),所以 JSON 中没有编码声明。

您可以像这样将它添加到 Content-Type 中:

@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")

关于java - jersey web 服务 json utf-8 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9359728/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com