В следующем минималистическом примере:
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». Как мне расшифровать его, чтобы получить тот же результат?
И дополнительный вопрос, почему случайный символ юникода, такой как ش, не кодируется аналогичным образом?