Вы пытаетесь превратить эти символы в коды символов ASCII и используете эти коды в качестве значений байтов.Это можно сделать с помощью charCodeAt
.Например:
var str = "x7={";
var result = ( str.charCodeAt(0) << 24 )
+ ( str.charCodeAt(1) << 16 )
+ ( str.charCodeAt(2) << 8 )
+ ( str.charCodeAt(3) );
Возвращает 2016886139, как и ожидалось.
Однако имейте в виду, что в отличие от C ++, JavaScript не обязательно будет использовать однобайтовый набор из 256 символов.Например, '€'.charCodeAt(0)
возвращает 8364, что намного превышает максимум 256, который допускает ваша эквивалентная программа C ++.Таким образом, любой символ за пределами диапазона 0–255 приведет к тому, что приведенный выше код будет вести себя некорректно.
Используя Unicode, вы можете вместо этого представлять «" 㵻 ».