3

我正在使用 GSON 序列化我的对象。但出于某种原因,它并没有转义某些 unicode 字符。

    Gson gson =  new Gson();
    System.out.println(gson.toJson("™"));
    System.out.println(Character.codePointAt("™", 0) );
    System.out.println(Character.codePointAt("™", 1) );

输出:

“™”

194

8482

是否有确保字符被转义的设置?

4

1 回答 1

6

没有理由转义 unicode 字符,因为它们在 JSON 字符串中是允许的。

来自json.org

在此处输入图像描述

如果您在将 JSON 发送到浏览器时遇到问题,请检查您的 HTTP 标头是否设置为 UTF-8。

如果您真的想像在 Java 中那样转义 unicode 字符,您可以使用apache commons 的 StringEscapeUtils#escapeJava,但您可能不应该这样做。

于 2013-01-02T20:27:52.883 回答