当前位置: 代码迷 >> Java相关 >> [求助]请问字符串如何转换成16进制?
  详细解决方案

[求助]请问字符串如何转换成16进制?

热度:147   发布时间:2007-04-12 14:41:50.0
[求助]请问字符串如何转换成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编辑过]

搜索更多相关的解决方案: 进制  字符  String  adkh  

----------------解决方案--------------------------------------------------------
没有人回答吗?

能给个方法也好啊。。。
----------------解决方案--------------------------------------------------------

自己定义一个方法
自己计算

先一个一个取出字符串里面的字符,然后计算其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 是什么意思啊?
----------------解决方案--------------------------------------------------------
就是取bs[n]低八位的意思.

----------------解决方案--------------------------------------------------------

谢谢


----------------解决方案--------------------------------------------------------

学习了


----------------解决方案--------------------------------------------------------
  相关解决方案