在java中,分出了这样的字符串变量的值:http://www.wangjiu.com/product/shoppingmall-product_type-1-country-\xC6\xE4\xCB\xFB\xB9\xFA\xBC\xD2-categoryname-\xB8\xC9\xB0\xD7\xC6\xCF\xCC\xD1\xBE\xC6-variety-\xC6\xE4\xCB\xFB\xBA\xEC\xC6\xB7\xD6\xD6\xBB\xEC\xBA\xCF-brand-\xCA\xC0\xBD\xE7\xC3\xFB\xC5\xC6.html有师兄能帮解吗?有这样大量的数据,求师兄给出在java中解开这样数据的代码。不胜感激!!!!!!

解决方案 »

  1.   

    base64编码。
    利用BASE64Decoder解码
      

  2.   

    师兄,我用了这个代码,还是不行啊:=================================
    String base64 = "http://www.wangjiu.com/product/shoppingmall-product_type-1-country-\\xC6\\xE4\\xCB\\xFB\\xB9\\xFA\\xBC\\xD2-categoryname-\\xB8\\xC9\\xB0\\xD7\\xC6\\xCF\\xCC\\xD1\\xBE\\xC6-variety-\\xC6\\xE4\\xCB\\xFB\\xBA\\xEC\\xC6\\xB7\\xD6\\xD6\\xBB\\xEC\\xBA\\xCF-brand-\\xCA\\xC0\\xBD\\xE7\\xC3\\xFB\\xC5\\xC6.html";        BASE64Decoder decode = new BASE64Decoder();        byte [] b = decode.decodeBuffer(base64);        System.out.println( new String(b));
        
      

  3.   

    String str = "\\xB8\\xC9\\xB0\\xD7\\xC6\\xCF\\xCC\\xD1\\xBE\\xC6";
        Pattern pattern = Pattern.compile("(?i)\\\\x([0-9a-f]{2})");
        Matcher matcher = pattern.matcher(str);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        while (matcher.find()) {
          baos.write(Integer.parseInt(matcher.group(1), 16));
        }
        byte[] bytes = baos.toByteArray();
        String decoded = new String(bytes, "GB2312");
        System.out.println(decoded);干白葡萄酒
      

  4.   

    师兄,非常感激!问题1:请问这到底是什么编码???问题2:请问都什么情况下能产生这样的编码?这个请求是发向nginx、然后由nginx收集下来的日志,请问nginx哪里是否能够通过设置修改这个输出的日志,而实现直接就能成为正确、正常编码的数据?问题3:完整的学习、以便能够达到遇到编码问题都能心中非常清楚、明白,关于编码的书籍,师兄们能推荐一下吗?感激师兄!!!
      

  5.   

    从我代码里面也可以看出,这个没什么特殊的,就是十六进制HEX(Decimal)日志之所以这样打印,是因为碰到了非可打印字符(可以简单理解为键盘上看得见摸得着的字符以外的不分),就将其字节打印为若干\xFF的格式,每组代表一个字节,字节的内容,就是后面两个十六进制的数字代表的字节。你这个url(不知道你页面编码格式是否就是设计成如此)传递的汉字,按照GB2312/GBK/...编码,每个汉字两字节。
      

  6.   

    乱码问题是你写进去和读出来的方式不一样产生的,用 System.getProperty("file.encoding"),就可以匹配你当前项目的编码集。
    byte[] bytes = baos.toByteArray();
    String decoded = new String(bytes, System.getProperty("file.encoding"));