js怎么数组转成字符串啊~

huangyannew 2011-03-15 03:35:09
我指的是一个Unicode编码的byte[]转成字符串

例如[74,85,49,0,50,0,51,0] 转成 "啊123" 而不是 "74,85,49,0,50,0,51,0"

大哥大姐们帮帮忙吧~应该不是什么难的事可是我就是不知道~
...全文
26466 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangyannew 2011-03-16
  • 打赏
  • 举报
回复
恩楼上的方法不错 不过数组转成字符串 一点点匹配 再转成数组感觉有点不爽啊~ 还不如直接点
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);
虽然多了几行。。
总之问题解决了多谢大家啦~
wcwtitxu 2011-03-16
  • 打赏
  • 举报
回复

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(","));
hch126163 2011-03-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 luxu001207 的回复:]

JScript code

var a = [74,85,49,0,50,0,51,0];
alert(a.join(""));//说了用join...
[/Quote]

+1
kaifadi 2011-03-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 hnxxwyq 的回复:]

JScript code


function byte2char(bytes) {
// by lazyboy
var result = '', b = '', s = '';

for(var i=0; i < bytes.length; i=i+2) {
// 要考虑高低位的位置,现在给出的数据是 高位在后
s = byte……
[/Quote]

+++++++++厉害!

汉尼拔 2011-03-15
  • 打赏
  • 举报
回复
unescape()学习了,

这个函数在json中时常要用到吧
lazyboy_wu 2011-03-15
  • 打赏
  • 举报
回复


function byte2char(bytes) {
// 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));
cdashi 2011-03-15
  • 打赏
  • 举报
回复
JavaScript中的数组有个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
sohighthesky 2011-03-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 huangyannew 的回复:]

楼上你太帅了
String.fromCharCode(a[i]|(a[++i]<<8))
这样就行了 没搞过js没看见还有fromCharCode这个方法哈哈
[/Quote]
不错,互相学习
guoweina 2011-03-15
  • 打赏
  • 举报
回复
不是很懂,大学的时候没学好
Atai-Lu 2011-03-15
  • 打赏
  • 举报
回复
呃,理解错了,不好意思
Atai-Lu 2011-03-15
  • 打赏
  • 举报
回复

var a = [74,85,49,0,50,0,51,0];
alert(a.join(""));//说了用join...
huangyannew 2011-03-15
  • 打赏
  • 举报
回复
楼上你太帅了
String.fromCharCode(a[i]|(a[++i]<<8))
这样就行了 没搞过js没看见还有fromCharCode这个方法哈哈
chenyuqing2009 2011-03-15
  • 打赏
  • 举报
回复
偶也不懂。。各种的希望哪位大牛现身说法。。
sohighthesky 2011-03-15
  • 打赏
  • 举报
回复

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)
//这个只能转英文和数字,汉字给出的信息不够,不知道要怎么提取或者判断汉字,及其长度或者分隔
huangyannew 2011-03-15
  • 打赏
  • 举报
回复
哪位知道的大哥说下额
Atai-Lu 2011-03-15
  • 打赏
  • 举报
回复
join

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧