java native2ascii.exe的java版本
阿新 • • 發佈:2020-07-27
筆者週末在家逆向jdk原始碼,得到以下方法
public static void main(String[] args){ System.out.println(native2ascii("hh漢字")); } static String native2ascii(String originalText) { final StringBuffer stringBuffer = new StringBuffer(); char[] array = originalText.toCharArray();int n2 = array.length; for (int i = 0; i < n2; ++i) { if (array[i] > '\u007f') { stringBuffer.append((char) 92); stringBuffer.append((char)117); final StringBuffer sb = new StringBuffer(Integer.toHexString(array[i])); sb.reverse();for (int n3 = 4 - sb.length(), j = 0; j < n3; ++j) { sb.append('0'); } for (int k = 0; k < 4; ++k) { stringBuffer.append(sb.charAt(3 - k)); } } else { stringBuffer.append(array[i]); } }return stringBuffer.toString(); }
輸出結果等同於 native2ascii.exe裡面執行命令