ServiceFramework icon indicating copy to clipboard operation
ServiceFramework copied to clipboard

Emoji包含emoji表情的对象转化成json乱码

Open kevinke2012 opened this issue 8 years ago • 7 comments

这个框架最近使用了一下,发现个问题,如题,不知道咋解决,举个例子,该框架从数据库取出带emoji表情字段的对象,使用render转化返回给IOS客户端的时候,数据包乱码,导致IOS无法解析。 public void render(Object result) { restResponse.originContent(result); restResponse.write(toJson(result)); throw new RenderFinish(); } 之前使用springMVC的时候用的@ResponseBody注解是没有问题的,解析成json的动作SpringMVC代替了。也没有很多时间去研究他们的源码。 大神帮帮忙看一下

kevinke2012 avatar Aug 09 '16 16:08 kevinke2012

和 @ ResponseBody 对等的是 render(200, 字符串对象, ViewType.string); 也就是我们渲染出去的就是原生的字符串。至于从数据库取出的对象如何转化成字符串,则需要你自己想办法解决。

allwefantasy avatar Aug 10 '16 02:08 allwefantasy

qq 20160810114851 如图c为返回给客户端的String,正确的返回应该是\uD83D\uDE33,但是在用render(200, 字符串对象, ViewType.string);返回的时候变成乱码,猜测是\uD83D和\uDE33单独被解码了?

kevinke2012 avatar Aug 10 '16 03:08 kevinke2012

恩,应该是被解码了。拿到后能否转义下?

allwefantasy avatar Aug 11 '16 12:08 allwefantasy

或者存储前做转义

allwefantasy avatar Aug 11 '16 12:08 allwefantasy

I`ve solved this problem, just insert the following codes in JPA.java at method 'properties()'.
At all , please update your jetty version bigger than 7.

nudui avatar Nov 07 '17 06:11 nudui

    properties.put("initConnectionSqls","set names utf8mb4");

nudui avatar Nov 07 '17 06:11 nudui

DruidDataSourceFactory.java里的“config”方法,里面会获取property

nudui avatar Nov 07 '17 06:11 nudui