[英]Javax.ws encoding during parsing incompability
Hello I created Rest WS in Spring that have one method getUsersInJSON() 您好,我在Spring中创建了Rest WS,它具有一种方法getUsersInJSON()
@Path("/json/users")
public class JSONService {
@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public List<UserBean> getUserInJSON() {
List<UserBean> resultList = new ArrayList<UserBean>();
UserBean user = new UserBean();
user.setPrimaryName("User1");
user.setDisplayName("Mieczysław doraźny");
user.setLatitude(52.237853);
user.setLongitude(20.98324);
user.setLastName("Doraźny");
UserBean user2 = new UserBean();
user2.setPrimaryName("Bonifacy");
user2.setDisplayName("Bonek");
user2.setLastName("Słomiński");
user2.setLatitude(52.25836);
user2.setLongitude(20.995728);
UserBean user3 = new UserBean();
user3.setPrimaryName("Maciej");
user3.setDisplayName("Maciej 89");
user3.setLastName("Grochowski");
user3.setLatitude(52.244712);
user3.setLongitude(20.977296);
UserBean user4 = new UserBean();
user4.setPrimaryName("田中さん");
user4.setDisplayName("Tanaka");
user4.setLastName("邪魔だ");
user4.setLatitude(52.248022);
user4.setLongitude(21.019031);
UserBean user5 = new UserBean();
user5.setPrimaryName("زبيغنيو مشغول");
user5.setDisplayName("Arabski arab");
user5.setLastName("كباب");
user5.setLatitude(52.223133);
user5.setLongitude(21.015705);
UserBean user6 = new UserBean();
user6.setPrimaryName("Typ");
user6.setDisplayName("Co za TYP!");
user6.setLastName("cozatyp");
user5.setLatitude(52.224776);
user5.setLongitude(20.989119);
resultList.add(user2);
resultList.add(user3);
resultList.add(user4);
resultList.add(user5);
resultList.add(user6);
return resultList;
}}
And When I deploy my application and put url I get answer in Internet Browser (Google Chrome) as follow: 当我部署应用程序并放入url时,我会在Internet浏览器(Google Chrome)中得到答复,如下所示:
[{"latitude":52.25836,"longitude":20.995728,"primaryName":"Bonifacy","lastName":"Słomiński","displayName":"Bonek"},
{"latitude":52.244712,"longitude":20.977296,"primaryName":"Maciej","lastName":"Grochowski","displayName":"Maciej 89"},
{"latitude":52.248022,"longitude":21.019031,"primaryName":"ç”°ä¸ã•ã‚“","lastName":"邪é”ã ","displayName":"Tanaka"},
{"latitude":52.224776,"longitude":20.989119,"primaryName":"زبيغنيو مشغول","lastName":"كباب","displayName":"Arabski arab"},
{"latitude":0.0,"longitude":0.0,"primaryName":"Typ","lastName":"cozatyp","displayName":"Co za TYP!"}]
So I had a String encoding issue because rather: 田中さん or زبيغنيو مشغول I got some crap like: "ç”°ä¸ã•ã‚“ and زبيغنيو مشغول 所以我遇到了一个String编码问题,原因是:田中さん或زبيغنيومشغول我得到了一些废话,例如:“ç”°ä¸ã•ã,和زبيغنيومشغول
I trying something with String encoding and read some spring documentation but I didn't find anything useful for this case. 我尝试使用String编码进行一些操作,并阅读了一些Spring文档,但在这种情况下没有发现任何有用的信息。 So my question what is the best way to keep utf8 capability?
所以我的问题是保持utf8功能的最佳方法是什么?
Solution that works well was change @Produces(MediaType.APPLICATION_JSON) to @Produces(MediaType.APPLICATION_JSON + "; charset=UTF-8") 效果很好的解决方案是将@Produces(MediaType.APPLICATION_JSON)更改为@Produces(MediaType.APPLICATION_JSON +“; charset = UTF-8”)
在JAX-RS中有一个类似的文章可用于字符编码- 如何用JAX-RS设置字符集?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.