superset:自定义标签乱码解决

展示在springboot系统内乱码,但是iframe放到html却不乱码。 

 

superset:自定义标签乱码解决

 

frame放到html却不乱码: 

 

superset:自定义标签乱码解决

起初怀疑是前端的问题,但却不是,我拿出了后端返回给前端的url,直接访问也是乱码的,后来考虑是因为之前为了实现前端superset可以通过时间实时查询,后端做了对superset的默认url的处理,比如重新拼接timerange啊等等以及其他过滤条件。

通过debug,发现替换条件后,重新encode编码(编码为%656%7%776%这样的格式)后确实出了问题,因为这些条件包含中文,我这里需要加上指定要用UTF-8编码格式编码,如下图:

之前是:

url += URLEncoder.encode( JSONObject.toJSONString(formJson, SerializerFeature.WriteMapNullValue));

改后:

try {
    url += URLEncoder.encode( JSONObject.toJSONString(formJson, SerializerFeature.WriteMapNullValue),"UTF-8");
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}

重新启动后便不乱码了:

superset:自定义标签乱码解决

SupersetUtil 参考:https://blog.****.net/weixin_38750084/article/details/90533238