第一次见这种编码,求大神相助

ChiChengIT 2015-12-02 06:40:42
\\xE8\\xB7\\xAF\\xE8\\x99\\x8E \\xE6\\x8F\\xBD\\xE8\\x83\\x9C\\xE6\\x9E\\x81\\xE5\\x85\\x89


请问这是什么编码啊,怎么转成中文啊
...全文
291 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinat_31535993 2015-12-04
  • 打赏
  • 举报
回复
encode和decode编码
我要爆炸啦 2015-12-04
  • 打赏
  • 举报
回复
0X应该是16进制的吧,前面的/应该是转义吧
君莫傲 2015-12-04
  • 打赏
  • 举报
回复
加密了?我感觉是!
ma130139 2015-12-04
  • 打赏
  • 举报
回复
引用 7 楼 paradisesunny 的回复:
[quote=引用 4 楼 zyz1985 的回复:]

public class Test {

	 
    public static String str2Hex(String str) throws UnsupportedEncodingException {
        String hexRaw = String.format("%x", new BigInteger(1, str.getBytes("UTF-8")));
        char[] hexRawArr = hexRaw.toCharArray();
        StringBuilder hexFmtStr = new StringBuilder();
        final String SEP = "\\x";
        for (int i = 0; i < hexRawArr.length; i++) {
            hexFmtStr.append(SEP).append(hexRawArr[i]).append(hexRawArr[++i]);
        }
        return hexFmtStr.toString();
    }
 
    public static String hex2Str(String str) throws UnsupportedEncodingException {
        String strArr[] = str.split("\\\\"); // 分割拿到形如 xE9 的16进制数据
        byte[] byteArr = new byte[strArr.length - 1];
        for (int i = 1; i < strArr.length; i++) {
            Integer hexInt = Integer.decode("0" + strArr[i]);
            byteArr[i - 1] = hexInt.byteValue();
        }
 
        return new String(byteArr, "UTF-8");
    }
 
    public static void main(String[] args) throws UnsupportedEncodingException {
 
        System.out.println(str2Hex("中国 1a23"));
        System.out.println(hex2Str(str2Hex("中国 1a23")));
        System.out.println(hex2Str("\\xE8\\xB7\\xAF\\xE8\\x99\\x8E \\xE6\\x8F\\xBD\\xE8\\x83\\x9C\\xE6\\x9E\\x81\\xE5\\x85\\x89".replaceAll(" ", "\\\\x20")));
    }
 

}
[/quote] 路虎揽胜极光 ,,,66666
带头大歌 2015-12-04
  • 打赏
  • 举报
回复
引用 4 楼 zyz1985 的回复:

public class Test {

	 
    public static String str2Hex(String str) throws UnsupportedEncodingException {
        String hexRaw = String.format("%x", new BigInteger(1, str.getBytes("UTF-8")));
        char[] hexRawArr = hexRaw.toCharArray();
        StringBuilder hexFmtStr = new StringBuilder();
        final String SEP = "\\x";
        for (int i = 0; i < hexRawArr.length; i++) {
            hexFmtStr.append(SEP).append(hexRawArr[i]).append(hexRawArr[++i]);
        }
        return hexFmtStr.toString();
    }
 
    public static String hex2Str(String str) throws UnsupportedEncodingException {
        String strArr[] = str.split("\\\\"); // 分割拿到形如 xE9 的16进制数据
        byte[] byteArr = new byte[strArr.length - 1];
        for (int i = 1; i < strArr.length; i++) {
            Integer hexInt = Integer.decode("0" + strArr[i]);
            byteArr[i - 1] = hexInt.byteValue();
        }
 
        return new String(byteArr, "UTF-8");
    }
 
    public static void main(String[] args) throws UnsupportedEncodingException {
 
        System.out.println(str2Hex("中国 1a23"));
        System.out.println(hex2Str(str2Hex("中国 1a23")));
        System.out.println(hex2Str("\\xE8\\xB7\\xAF\\xE8\\x99\\x8E \\xE6\\x8F\\xBD\\xE8\\x83\\x9C\\xE6\\x9E\\x81\\xE5\\x85\\x89".replaceAll(" ", "\\\\x20")));
    }
 

}
dracularking 2015-12-03
  • 打赏
  • 举报
回复
这是十六进制转义字符 它是由反斜杠'\'和字母x(或X)及随后的1~2个十六进制数字构成的字符序列。 例如,'\x30'、'\x41'、'\X61'分别表示字符'0'、'A'和'a'。因为字符'0'、'A'和'a'的ASCII码的十六进制值分别为0x30、0x41和0x61。
ChiChengIT 2015-12-03
  • 打赏
  • 举报
回复
引用 楼主 ChiChengIT 的回复:
\\xE8\\xB7\\xAF\\xE8\\x99\\x8E \\xE6\\x8F\\xBD\\xE8\\x83\\x9C\\xE6\\x9E\\x81\\xE5\\x85\\x89 请问这是什么编码啊,怎么转成中文啊
引用 1 楼 Zq_Dream 的回复:
这是配置文件里面的吧
不是,\u64CD\u4F5C\u975E\u6CD5 配置文件里是这种,上面的那种貌似16进制的
游一游走一走 2015-12-03
  • 打赏
  • 举报
回复

public class Test {

	 
    public static String str2Hex(String str) throws UnsupportedEncodingException {
        String hexRaw = String.format("%x", new BigInteger(1, str.getBytes("UTF-8")));
        char[] hexRawArr = hexRaw.toCharArray();
        StringBuilder hexFmtStr = new StringBuilder();
        final String SEP = "\\x";
        for (int i = 0; i < hexRawArr.length; i++) {
            hexFmtStr.append(SEP).append(hexRawArr[i]).append(hexRawArr[++i]);
        }
        return hexFmtStr.toString();
    }
 
    public static String hex2Str(String str) throws UnsupportedEncodingException {
        String strArr[] = str.split("\\\\"); // 分割拿到形如 xE9 的16进制数据
        byte[] byteArr = new byte[strArr.length - 1];
        for (int i = 1; i < strArr.length; i++) {
            Integer hexInt = Integer.decode("0" + strArr[i]);
            byteArr[i - 1] = hexInt.byteValue();
        }
 
        return new String(byteArr, "UTF-8");
    }
 
    public static void main(String[] args) throws UnsupportedEncodingException {
 
        System.out.println(str2Hex("中国 1a23"));
        System.out.println(hex2Str(str2Hex("中国 1a23")));
        System.out.println(hex2Str("\\xE8\\xB7\\xAF\\xE8\\x99\\x8E \\xE6\\x8F\\xBD\\xE8\\x83\\x9C\\xE6\\x9E\\x81\\xE5\\x85\\x89".replaceAll(" ", "\\\\x20")));
    }
 

}
Zq_Dream 2015-12-02
  • 打赏
  • 举报
回复
这是配置文件里面的吧

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧