\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");
}