Как преобразовать байтовый массив в строку согласно некоторой пользовательской схеме кодирования? - PullRequest
0 голосов
/ 10 ноября 2018

Строка "s ज g" содержит 2 английских символа клавиатуры и один символ Unicode. Он может быть представлен в байтовом массиве для различных схем кодирования следующим образом:

Я написал кодер-декодер, который может преобразовывать число в байтовый массив и наоборот, используя формат связанных байтов (LB). Как я могу преобразовать строку в байтовый массив и наоборот?

Другими словами, как реализован любой кодировщик-декодер строк?

1 Ответ

0 голосов
/ 10 ноября 2018

Хотя я реализовал это как хак. Но я все еще ищу правильное решение.

LBSequence.strToByteArr = function(str){
    const byteArr = [];
    for(let i=0; i< str.length; i++){
        let code = str.charCodeAt(i);
        byteArr.push(...LBSequence.encode(code));
    }
    return byteArr;
}

LBSequence.byteArrToStr = function(byteArr, start, end){
    start || (start = 0);
    end || (end  = byteArr.length);
    let str = '';
    while(start< end){
        let code = LBSequence.decode( byteArr, start );
        str += String.fromCharCode( code.val );
        start += code.len;
    }
    return str;
}
...