首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

\x0A\xC3\xDC\x0D\x09\x0A\xC2\xEB\x02转String密 码解决办法

2013-06-19 
\x0A\xC3\xDC\x0D\x09\x0A\xC2\xEB\x02转String密 码已知:\x0A\xC3\xDC\x0D\x09\x0A\xC2\xEB\x02转换结果

\x0A\xC3\xDC\x0D\x09\x0A\xC2\xEB\x02转String密 码
已知:\x0A\xC3\xDC\x0D\x09\x0A\xC2\xEB\x02
转换结果是“密 码”(中间的符号是回车)
在c++里面可以这样写:char *pwd = "\x0A\xC3\xDC\x0D\x09\x0A\xC2\xEB\x02";
Java里面unicode怎样转成密 码?
[解决办法]
\x0A\xC3\xDC\x0D\x09\x0A\xC2\xEB\x02

0A C3 DC 0D 09 0A C2 EB 02

其中红色部分为 GBK 中的“密”字,蓝色部分为“码”字,这其中还有其余不可见字符。需要知道你这个串是用在什么地方的才能确定其他字符的去和留。
[解决办法]


    public static void main(String[] args) throws Exception{
        String str = "\\x0A\\xC3\\xDC\\x0D\\x09\\x0A\\xC2\\xEB\\x02";
        String pwd = getPwd(str);
        System.out.println(pwd);
    }
    
    public static String getPwd(String str) throws UnsupportedEncodingException {
        str = str.replaceAll("\\\\x", "");  //去除\x的标识
        byte[] bs = new byte[str.length()/2 - 1];  //长度减1时为了除去结尾符02
        for(int i = 0;i<bs.length;i++) {
            bs[i] = (byte)Integer.parseInt(str.substring(i * 2,(i+1) * 2), 16);
        }
        return new String(bs, "gbk");
    }

结果:
    //空的回车

    //制表符


1. 请确认密码中的每个字符是否都以回车分割?
2. 请确认空格是否被替换为了制表符?

热点排行