Java 有人能澄清一下Gson';什么是unicode编码?
在以下简约示例中:Java 有人能澄清一下Gson';什么是unicode编码?,java,unicode,gson,Java,Unicode,Gson,在以下简约示例中: import com.google.gson.Gson; import com.google.gson.GsonBuilder; public class GsonStuff { public static void main(String[] args) { GsonBuilder builder = new GsonBuilder(); Gson gson = builder.create(); System.o
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonStuff {
public static void main(String[] args) {
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
System.out.println(gson.toJson("Apostrophe: '"));
//Outputs: "Apostrophe: \u0027"
}
}
在打印输出中,撇号将被其unicode表示形式替换。但是,从toJson
方法返回的字符串实际上包含字符“\”、“u”、“0”、“0”、“2”、“7”
用json对其进行解码实际上是可行的,并给出字符串“撇号:”,而不是“撇号:\u0027”。我应该如何解码以获得相同的结果
还有一个问题,为什么像ش这样的随机unicode字符编码方式不一样?默认情况下,gson unicode会转义某些字符,其中
“
就是其中之一。(有关完整列表,请参见中的HTML\u SAFE\u REPLACEMENT\u CHARS
)
要禁用此功能,请执行以下操作:
builder.disableHtmlEscaping();
谢谢另外,刚才看到JsonReader使用
JsonReader.readEscapeCharacter()
对这些字符进行解码,这实际上看起来相当复杂。谢谢!