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里面执行命令

本博客文章绝大多数为原创,少量为转载,代码经过测试验证,如果有疑问直接留言或者私信我。
创作文章不容易,转载文章必须注明文章出处;如果这篇文章对您有帮助,点击右侧打赏,支持一下吧。
原文地址:https://www.cnblogs.com/passedbylove/p/13384232.html