1. 程式人生 > 實用技巧 >java native2ascii.exe的java版本

java native2ascii.exe的java版本

筆者週末在家逆向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裡面執行命令