agapple 4 роки тому
батько
коміт
a09cd9adb5

+ 19 - 3
dbsync/src/main/java/com/taobao/tddl/dbsync/binlog/JsonConversion.java

@@ -420,11 +420,27 @@ public class JsonConversion {
         for (int i = 0; i < endIndex; ++i) {
             char c = data.charAt(i);
             if (c == '"') {
-                sb.append('\\');
+                sb.append("\\\"");
+            } else if (c == '\n') {
+                sb.append("\\n");
+            } else if (c == '\r') {
+                sb.append("\\r");
             } else if (c == '\\') {
-                sb.append("\\");
+                sb.append("\\\\");
+            } else if (c == '\t') {
+                sb.append("\\t");
+            } else if (c < 16) {
+                sb.append("\\u000");
+                sb.append(Integer.toHexString(c));
+            } else if (c < 32) {
+                sb.append("\\u00");
+                sb.append(Integer.toHexString(c));
+            } else if (c >= 0x7f && c <= 0xA0) {
+                sb.append("\\u00");
+                sb.append(Integer.toHexString(c));
+            } else {
+                sb.append(c);
             }
-            sb.append(c);
         }
         return sb;
     }