我指的是一个Unicode编码的byte[]转成字符串例如[74,85,49,0,50,0,51,0] 转成 "啊123" 而不是 "74,85,49,0,50,0,51,0"大哥大姐们帮帮忙吧~应该不是什么难的事可是我就是不知道~
解决方案 »
- js 简单小问题
- jquery 鼠标移上变色效果处理
- 头痛了,求一种效果
- var Dtr = document.getElementsByTagName("tr");
- if var a = 'value',Text1 is a obj, How to Make Text1.value = 'bb' in javascript;but Text1.a='bb' is not right.
- 如何实现数字分页
- javascript中有什么类型是一个KEY一个Value这样子一一对应的集合形式的。
- javascript如何获得Url后面的参数值的?
- 如何得知一个对象是个集合还是单个对象
- 求解 获取Div里面重复出现的<p>标签的 正则表达式怎么写?
- 一个奇怪的问题
- 真没有人用过 dhATV(Ajax TreeView) V4.0吗
var a = [74,85,49,0,50,0,51,0];
var s = "";
for(var i=0;i<a.length ;i++){
s +=String.fromCharCode(a[i]);
}
alert(s)
//这个只能转英文和数字,汉字给出的信息不够,不知道要怎么提取或者判断汉字,及其长度或者分隔
String.fromCharCode(a[i]|(a[++i]<<8))
这样就行了 没搞过js没看见还有fromCharCode这个方法哈哈
var a = [74,85,49,0,50,0,51,0];
alert(a.join(""));//说了用join...
例如:var array=[1,2,3,4,5,6];//声明一个数组
document.write(array.join("+"));//join的参数为+,标示各个元素之间用+号连接结果:
1+2+3+4+5+6
如果你不想用任何的连接符;可以将join参数改为空字符串;document.write(array.join(""));//join的参数为"",标示各个元素之间用空串连接;结果:
123456
// by lazyboy
var result = '', b = '', s = '';
for(var i=0; i < bytes.length; i=i+2) {
// 要考虑高低位的位置,现在给出的数据是 高位在后
s = bytes[i];
b = bytes[i+1];
// 转换成16进制
if(b < 16) {
b = '0'.concat(b.toString(16));
} else {
b = b.toString(16);
}
s = s.toString(16);
// 由js的unicode编码转换成实际字符
result += unescape('%u' + b + s);
}
return result;
}arr = [74,85,49,0,50,0,51,0];document.write(byte2char(arr));
var a = [74,85,49,0,50,0,51,0];var s = String.fromCharCode.apply("", a.join(',').replace(/(\d+),(\d+)/g, function($,l,h){return h<<8|l;}).split(","));
var a = [74,85,49,0,50,0,51,0],arr = [];
for (var i = 0 ; i < a.length ; ++i)
arr.push(a[i]|a[++i]<<8);
var str = String.fromCharCode.apply("", arr);
虽然多了几行。。
总之问题解决了多谢大家啦~