已知:\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. 请确认空格是否被替换为了制表符?