譬如一个数组byte[] bytearrary ={0x51,0x68,0x90,0xE8},
unicode编码是“全部”怎么变为一个字符串,使它调用System.out.println让控制台显示“全部”给位大侠,请多多赐教啦!java
unicode编码是“全部”怎么变为一个字符串,使它调用System.out.println让控制台显示“全部”给位大侠,请多多赐教啦!java
解决方案 »
- android音乐播放器 查询最近播放的音乐
- 基于ffmepg开发Android平台的流媒体解码库
- android服务器客户端通信问题
- android菜鸟对content provider尤其是URI不太理解,请指教
- 加Android源代码到eclipse,出现ParameterInfo.java could not be read错误
- 导入外部jar包后报错 编译模拟器时提示Conversion to Dalvik format failed with error 1
- android源码亮灭屏实现
- Android 浏览器浏览网页时的滑屏前进后退是如何实现的呢
- 求解,unfortunalately,App has stopped
- 动态加载 jar找不到jar里面的activity
- 照着书里的代码打了一遍,不过运行总是崩溃
- android service怎么拿到调用者的包名
另外0xE8>127了,不合法
即 new String(byte[],charset)
package com.luxtone.test;
public class ByteTest {
public static void main(String[] args) {
byte[] bytearrary = { 0x51, 0x68};
System.out.println(deUnicode(byte2hex(bytearrary)));
}
/**
* java字节码转字符串
* @param b
* @return
*/
public static String byte2hex(byte[] b) { //一个字节的数,
// 转成16进制字符串
String hs = "";
String tmp = "";
for (int n = 0; n < b.length; n++) {
//整数转成十六进制表示
tmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
if (tmp.length() == 1) {
hs = hs + "0" + tmp;
} else {
hs = hs + tmp;
}
}
tmp = null;
return hs.toUpperCase(); //转成大写
} public static String deUnicode(String content) {// 将16进制数转换为汉字
String enUnicode = null;
String deUnicode = null;
for (int i = 0; i < content.length(); i++) {
if (enUnicode == null) {
enUnicode = String.valueOf(content.charAt(i));
} else {
enUnicode = enUnicode + content.charAt(i);
}
if (i % 4 == 3) {
if (enUnicode != null) {
if (deUnicode == null) {
deUnicode = String.valueOf((char) Integer.valueOf(
enUnicode, 16).intValue());
} else {
deUnicode = deUnicode
+ String.valueOf((char) Integer.valueOf(
enUnicode, 16).intValue());
}
}
enUnicode = null;
} }
return deUnicode;
}
}
你的后两个byte值有问题,写的不对