反斜杠加3个数字是什么编码

1.使用

    @Test
    public void chineseToCode() throws UnsupportedEncodingException {
        //1.url编码出字符串
        //str = %E5%A4%A7%E5%AE%B6%E5%A5%BD%E3%80%82
        String str = URLEncoder.encode("大家好。", "UTF-8");
        //2.获取十六进制表示的字符串
        String[] s = str.substring(1).split("%");
        StringBuffer s8 = new StringBuffer();
        //3.把每个十六进制字符串转换成八进制字符串,形式为:\+数字
        for(int i=0;i<s.length;i++){
            s8.append("\\"+Integer.toOctalString(Integer.valueOf(s[i],16)));
        }
        System.out.println(s8.toString());
    }

    @Test
    public void codeToChinese() throws UnsupportedEncodingException {
        //\345\244\247\345\256\266\345\245\275\343\200\202
        String code = "\\346\\227\\240\\350\\275\\246\\347\\211\\214";
        //1.获取八进制数据
        String[] split = code.substring(1).split("\\\\");

        StringBuffer s16 = new StringBuffer();

        //2.把八进制转换成格式为:%+十六进制
        for (String s : split) {
            s16.append("%"+Integer.toHexString(Integer.valueOf(s, 8)).toString().toUpperCase());
        }

        //3.解码
        String decode = URLDecoder.decode(s16.toString(), "UTF-8");
        System.out.println("decode = " + decode);

        System.out.println(s16);
//
    }

2.参考

反斜杠加3个数字是什么编码?JAVA转义序列、转义字符汇总。
java中二进制,八进制,十六进制之间的转换

你可能感兴趣的:(点滴)