Skip to content Skip to sidebar Skip to footer

Convert Integer Array To String At Javascript

Here is php code: $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; the output is: 中文chinese Here

Solution 1:

JavaScript strings consist of UTF-16 code units, yet the numbers in your array are the bytes of a UTF-8 string. Here is one way to convert the string, which uses the decodeURIComponent() function:

var i, str = '';

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

Performing the UTF-8 to UTF-16 conversion in the conventional way is likely to be more efficient but would require more code.

Solution 2:

var arry = [3,5,7,9];
console.log(arry.map(String))

the result will be ['3','5','7','9']

var arry = ['3','5','7','9']
console.log(arry.map(Number))

the result will be [3,5,7,9]

Solution 3:

Another solution without decodeURIComponent for characters up to 3 bytes (U+FFFF). The function presumes the string is valid UTF-8, not much error checking...

function atos(arr){for(var i=0, l=arr.length, s='',c; c= arr[i++];)
        s += String.fromCharCode(c>0xdf&&c<0xf0&& i < l-1?(c&0xf)<<12|(arr[i++]&0x3f)<<6| arr[i++]&0x3f:c>0x7f&& i < l
                ?(c&0x1f)<<6| arr[i++]&0x3f:c);

    return s
}

Solution 4:

Seems the best way these days is the following:

functionbufferToString(arr){
    return arr.map(function(i){returnString.fromCharCode(i)}).join("")
}

Solution 5:

Chinese charset has a different encoding in which one char is more than one byte long. When you do this

for (i in arr){
    str+=String.fromCharCode(arr[i]);
}

You are converting each byte to a char(actually string) and adding it to a string str. What you need to do is, pack the bytes together.

I changed your array to this and it worked for me:

var arr=[20013,25991,99,104,105,110,101,115,101];

I got these codes from here.

you can also take a look at this for packing bytes to a string.

Post a Comment for "Convert Integer Array To String At Javascript"