JSF restful输出非英文字符

时间:2013-01-13 08:10:39

标签: rest java-ee jax-rs

我有一个宁静的类,可以将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);
}

先谢谢。

2 个答案:

答案 0 :(得分:1)

您需要确保始终正确处理数据编码,从数据库开始到前端。我对SimpleJSON api并不完全熟悉,但是肯定toJSONString使用UTF-8编码吗?另外,请确保您呈现的页面

答案 1 :(得分:0)

使用JAXB实现解决。似乎是简单的JSON编码问题。

谢谢大家。