在javascript将整数数组转换为字符串

sol*_*wzs 8 javascript utf-8

这是PHP代码:

$arr=array(228,184,173,230,150,135,99,104,105,110,101,115,101);
$str='';
foreach ($arr as $i){
    $str.=chr($i);
}
print $str;
Run Code Online (Sandbox Code Playgroud)

输出是: ??chinese

这是javascript代码:

var arr=[228,184,173,230,150,135,99,104,105,110,101,115,101];
var str='';
for (i in arr){
    str+=String.fromCharCode(arr[i]);
}
console.log(str);
Run Code Online (Sandbox Code Playgroud)

输出是: 中æchinese

那么我应该如何在javascript处理数组?

Ple*_*and 18

JavaScript字符串由UTF-16代码单元组成,但数组中的数字是UTF-8字符串的字节.这是一种转换字符串的方法,它使用decodeURIComponent()函数:

var i, str = '';

for (i = 0; i < arr.length; i++) {
    str += '%' + ('0' + arr[i].toString(16)).slice(-2);
}
str = decodeURIComponent(str);
Run Code Online (Sandbox Code Playgroud)

以传统方式执行UTF-8到UTF-16的转换可能更有效,但需要更多代码.

  • 使用你的方法我得到了一个'URIError:URI格式错误' (4认同)

小智 5

var arry = [3,5,7,9];
console.log(arry.map(String))
Run Code Online (Sandbox Code Playgroud)

结果将是 ['3','5','7','9']

var arry = ['3','5','7','9']
console.log(arry.map(Number))
Run Code Online (Sandbox Code Playgroud)

结果将是 [3,5,7,9]

  • 你回答错了吗? (4认同)