Java 使用hutool工具类代替commons-text进行Json 中文 Unicode转换

88540591 2020-06-16

可选的工具

中文转换Unicode,目前有两种方式,自写工具类引入第三方包,这里我推荐引入三方包,因为使用mvn配置非常简单,网上搜到的大多数都是自己写的工具类,试了一个,效果不是很好,因为把ASCII编码也转成Unicode格式了(一色的\u\u\u),虽然能用,但是可读性降低。

引入第三方包,有一个很出名的escapeJava()方法,是apache下边的一个包,最开始在org.apache.commons.lang3下,3.6版本之后被移到了org.apache.commons.commons-text下,我试了一下,最终成功了,但效果不对,json中的双引号被转义了,可见下方示例。最终放弃,然后找到了hutool这款国内的工具包,表示非常好用!

转换的三种格式对比

示例代码

// 原文
{"键":"value"}

// 网上自建类转换 -- 全转了
\u007b\u0026\u0071\u0075\u006f\u0074\u003b\u952e\u0026\u0071\u0075\u006f\u0074\u003b\u003a\u0026\u0071\u0075\u006f\u0074\u003b\u0076\u0061\u006c\u0075\u0065\u0026\u0071\u0075\u006f\u0074\u003b\u007d
// commons-text包escapeJava方法转换 -- 引号也转了
{\"\u952e\":\"value\"}
// hutool包toUnicode方法转换 -- 完美
{"\u952e":"value"}

使用hutool工具包

pom添加依赖

<dependency>
    <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
    <version>5.3.7</version>
</dependency>

使用

import cn.hutool.core.text.UnicodeUtil;

String json = "";
json = UnicodeUtil.toUnicode(json);

相关推荐