我有一个宁静的类,可以将JSON字符串发送到POST请求。数据以UTF-8格式存储在DB中。但是非英文字符总是显示为'??????',如果我从@Model获得记录,它一切正常。 这是rest的代码快照(使用简单的JSON编码JSON字符串):
@POST
@Path("/holidaylist")
@Produces(MediaType.APPLICATION_JSON)
public String getHoliday(){
List list = new LinkedList();
// Get list of holidays
List<Holiday> holidays = em.createQuery("SELECT holiday FROM Holiday holiday").getResultList();
Map event;
for(Holiday holiday : holidays){
System.out.println("======== Holiday name: " + holiday.getHolidayName());
event = new HashMap();
event.put("id", holiday.getHolidayId());
event.put("title", holiday.getHolidayName());
event.put("start", holiday.getStartDate().toString());
list.add(event);
}
return JSONValue.toJSONString(list);
}
先谢谢。
答案 0 :(得分:1)
您需要确保始终正确处理数据编码,从数据库开始到前端。我对SimpleJSON api并不完全熟悉,但是肯定toJSONString使用UTF-8编码吗?另外,请确保您呈现的页面
答案 1 :(得分:0)
使用JAXB实现解决。似乎是简单的JSON编码问题。
谢谢大家。