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