在线工具 在线编程 在线白板 在线工具 在线编程 在线白板

java 中 \u53D6\u6D88 这种由中文转过来的我怎么还原

有没有人在啊,想请说下,java 中 \u53D6\u6D88 这种由中文转过来的我怎么还原
最新回答
绝命小红帽

2025-03-30 05:52:05

public class ConvertFrame {
    public static String native2ascii(String nativecode) {
        char[] natives = nativecode.toCharArray();
        String ascii = "";
        for (int i = 0; i < natives.length; i++) {
            int code = String.valueOf(natives[i]).codePointAt(0);
            if (code > 127) {
                String charAscii = Integer.toHexString(code);
                charAscii = "0000".substring(charAscii.length(), 4) + charAscii;
                ascii += "\\u" + charAscii;
            } else {
                ascii += natives[i];
            }
        }
        return ascii;
    }
    public static String ascii2native(String asciicode) {
        String[] asciis = asciicode.split("\\\\u");
        String nativeValue = asciis[0];
        try {
            for (int i = 1; i < asciis.length; i++) {
                String code = asciis[i];
                nativeValue += (char) Integer.parseInt(code.substring(0, 4), 16);
                if (code.length() > 4) {
                    nativeValue += code.substring(4, code.length());
                }
            }
        } catch (NumberFormatException e) {
            return asciicode;
        }
        return nativeValue;
    }
    public static void main(String[] args) {
        String str = "java 中 \u53D6\u6D88 这种由中文转过来的我怎么还原";
        System.out.println("NATIVE/ASCII编码互转");
        String a = native2ascii(str);
        System.out.println("native2ascii: " + a);
        String b = ascii2native(a);
        System.out.println("ascii2native: " + b);
    }
}
喻夜白

2025-03-30 05:48:21

在java的字符串中,\u53d6 就是一个字符

~
~
~
~