我想在JSON对象的值中将UTF-8字符串转换为escape \uXXX格式。
我使用了JSON Object和Gson,但在本例中不起作用:
JSONObject js = new JSONObject();
js.put("lastReason","nguyễn");
System.out.println(js.toString());
以及
Gson gson = new Gson();
String new_js = gson.toJson(js.toString());
System.out.println(new_js);
输出:{“测试”:“阮”}
但是我期望我结果是:
预期产出:{“测试”:“用户\u1 EC 5 n”}
你们有什么办法的,帮我解决吧。
1条答案
按热度按时间s4n0splo1#
可以使用apache commons-text库将字符串更改为使用Unicode转义序列。在将文本添加到
JSONObject
之前,请使用org.apache.commons.text.StringEscapeUtils
转换文本。将产生
使用
StringEscapeUtils
的一个可能的问题是它也会转义控制字符。如果字符串末尾有制表符,它将被转换为\t
。即:将产生不正确的字符串:
你可以使用
org.apache.commons.text.translate.UnicodeEscaper
来解决这个问题,但是它会将字符串中的每个字符都转换成Unicode转义序列,即:将产生
这是不是一个问题由你来决定。