我有一个restful类发送JSON字符串POST请求。数据以UTF-8格式存储在数据库中。但是非英文字符总是显示为'??????',如果我从@Model获得记录,它就可以正常工作。 这里是休息的代码卡(使用简单的JSON编码JSON字符串):JSF宁静输出非英文字符
@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);
}
在先进的感谢。
这经常发生是因为POST请求指定了另一个字符集。因此,Java-EE中的基本机制自动将您请求的内容转换为POST请求可接受的字符集。如果此请求来自网页,则可能必须更改网页以指定utf-8。 – Eelke
它是从网页的utf-8格式。 – lastcow