javascript преобразования массива байт в строку

Тема в разделе "WASM.ZEN", создана пользователем Charlief, 1 мар 2012.

  1. Charlief

    Charlief New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2010
    Сообщения:
    129
    Код (Text):
    1.     <script type="text/javascript">
    2.     chArr = new Uint8Array(4);
    3.     chArr[0] = 65;
    4.     chArr[1] = 66;
    5.     chArr[2] = 67;
    6.     chArr[3] = 68;
    7.     //--- Тут необходимо вывести текст из массива на экран:
    8.     tostr.innerHTML = ????
    9.     //--- Должно вывести строку "ABCD"
    10.     </script>
    Как реализовать ?
     
  2. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    535
    String.fromCharCode(N1,N2,N3.....)
    N - юникод-коды.
     
  3. Charlief

    Charlief New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2010
    Сообщения:
    129
    Dmitry_Milk
    Спасибо. В этой функции я так понял нельзя в качестве входного параметра указать каким-то образом массив.
    И для замены символа в результирующей строке кроме использования регулярных выражений я тоже не нашёл ничего более оптимального.
    Вот что получилось, если кому-нибудь интересно
    Код (Text):
    1.     <script type="text/javascript">
    2.  
    3.     var buf = new ArrayBuffer( 10 );
    4.     var chArr = new Uint16Array( buf );
    5.     var StStr, ch0;
    6.     var re0 = /([\s\S]{2})[\s\S]([\s\S])/;
    7.  
    8.     chArr[0] = 65;
    9.     chArr[1] = 66;
    10.     chArr[2] = 67;
    11.     chArr[3] = 68;
    12.     chArr[4] = 69;
    13.  
    14.     StStr = String.fromCharCode(chArr[0]);
    15.     for (i=1; i<6; i++) {
    16.     StStr += String.fromCharCode(chArr[i]);
    17.     }
    18.  
    19.     ch0 = String.fromCharCode(++chArr[4]);
    20.     //--- Заменяем третий символ в строке пятым увеличенным на единицу ---
    21.     tostr.innerHTML = StStr.replace(re0, "$1" + ch0 + "$2");
    22.  
    23.     </script>
    Выводит строку: ABFDE