[求助]请问字符串如何转换成16进制?
比如,String s = "adkh我34"; //“adkh我34”的16进制为“61 64 6B 68 CE D2 33 34”如何得到 String s1 = "61 64 6B 68 CE D2 33 34";
请问有什么方法吗?
[此贴子已经被作者于2007-4-12 14:42:30编辑过]
----------------解决方案--------------------------------------------------------
没有人回答吗?
能给个方法也好啊。。。
----------------解决方案--------------------------------------------------------
自己定义一个方法
自己计算
先一个一个取出字符串里面的字符,然后计算其ASCI
----------------解决方案--------------------------------------------------------
以下是引用千里冰封在2007-4-12 19:28:05的发言:
自己定义一个方法
自己计算
先一个一个取出字符串里面的字符,然后计算其ASCI
谢了。 我已经能得到ASCII范围内的了,请问版主如何得到UNICODE的16进制呢? 谢谢
----------------解决方案--------------------------------------------------------
程序代码:
/**
* By [url=http://eastsun.javaeye.com]Eastsun[/url]
*/
public class EncodeString{
public static String encode(String str,String cs){
byte[] bs =null;
try{
bs =str.getBytes(cs);
}catch(Exception e){
return null;
}
String code =\"\";
for(int n=0;n<bs.length;n++) code += Integer.toHexString(bs[n]&0xff);
return code;
}
public static void main(String[] args){
System.out.println(\"GB2312编码: \"+encode(\"adkh我34\",\"gb2312\"));
System.out.println(\"UTF-8编码: \"+encode(\"adkh我34\",\"utf-8\"));
}
}
----------------解决方案--------------------------------------------------------
以下是引用Eastsun在2007-4-12 22:33:53的发言:
/**
* By [url=http://eastsun.javaeye.com]Eastsun[/url]
*/
public class EncodeString{
public static String encode(String str,String cs){
byte[] bs =null;
try{
bs =str.getBytes(cs);
}catch(Exception e){
return null;
}
String code =\"\";
for(int n=0;n<bs.length;n++) code += Integer.toHexString(bs[n]&0xff);
return code;
}
public static void main(String[] args){
System.out.println(\"GB2312编码: \"+encode(\"adkh我34\",\"gb2312\"));
System.out.println(\"UTF-8编码: \"+encode(\"adkh我34\",\"utf-8\"));
}
}
非常感谢,但 bs[n]&0xff 是什么意思啊?
程序代码:
/**
* By [url=http://eastsun.javaeye.com]Eastsun[/url]
*/
public class EncodeString{
public static String encode(String str,String cs){
byte[] bs =null;
try{
bs =str.getBytes(cs);
}catch(Exception e){
return null;
}
String code =\"\";
for(int n=0;n<bs.length;n++) code += Integer.toHexString(bs[n]&0xff);
return code;
}
public static void main(String[] args){
System.out.println(\"GB2312编码: \"+encode(\"adkh我34\",\"gb2312\"));
System.out.println(\"UTF-8编码: \"+encode(\"adkh我34\",\"utf-8\"));
}
}
----------------解决方案--------------------------------------------------------
就是取bs[n]低八位的意思.
----------------解决方案--------------------------------------------------------
谢谢
----------------解决方案--------------------------------------------------------
学习了
----------------解决方案--------------------------------------------------------