diff --git a/src/main/java/org/jcnc/snow/common/StringEscape.java b/src/main/java/org/jcnc/snow/common/StringEscape.java index e27c107..fca7b6c 100644 --- a/src/main/java/org/jcnc/snow/common/StringEscape.java +++ b/src/main/java/org/jcnc/snow/common/StringEscape.java @@ -19,47 +19,9 @@ public final class StringEscape { private StringEscape() { } - /** - * 编译期方法: - *

将普通字符串编码为可安全存储于单行文本(如 .water 指令)的转义字符串。

- * - * - * - * @param input 原始字符串(可能包含特殊/不可见字符) - * @return 转义后的字符串,可安全作为单行文本保存 - */ - public static String escape(String input) { - StringBuilder sb = new StringBuilder(); - for (char ch : input.toCharArray()) { - switch (ch) { - case '\n' -> sb.append("\\n"); // 换行 - case '\t' -> sb.append("\\t"); // 制表符 - case '\r' -> sb.append("\\r"); // 回车 - case '\b' -> sb.append("\\b"); // 退格 - case '\f' -> sb.append("\\f"); // 换页 - case '\\' -> sb.append("\\\\"); // 反斜杠 - case '"' -> sb.append("\\\""); // 双引号 - case '\'' -> sb.append("\\'"); // 单引号 - default -> { - // 对于不可见的 ASCII 字符(<0x20)或非 ASCII 可见字符(>0x7E),转为 Unicode - if (ch < 0x20 || ch > 0x7E) { - sb.append(String.format("\\u%04X", (int) ch)); - } else { - sb.append(ch); // 其他字符直接附加 - } - } - } - } - return sb.toString(); - } - /** * 运行期方法: - *

将转义序列(如 \n, \u4E16 等)还原为实际字符。

+ *

将转义序列还原为实际字符。

* *