1 (изменено: avens, 2015-09-25 21:42:22)

Тема: JavaScript: Перевод текста в HEX и обратно

Как можно перевести текст в HEX и обратно?

Необходимо что бы переводилась строка также и в кириллице.

Можно в ANSI или UTF-8

Например:

strToHex('Привет Мир!'); // CFF0E8E2E5F220CCE8F021
hexToStr('CFF0E8E2E5F220CCE8F021'); // Привет Мир!

Вот пример, но почему то назад HEX в строку переводит некорректно:

<script>
function strTohex(string)
{
    var str = string;
     var hex = '';
    for(var i=0;i<str.length;i++) {
        hex += ''+str.charCodeAt(i).toString(16);
    }
    return hex;
}
function hexTostr(value)
{
    var hex  = value;
     var str = '';
    for (var i = 0; i < hex.length; i += 2){
        str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
        }
    return str;
}
</script>
<input type="submit" name="strTohex" value="strTohex" onclick="window.alert(strTohex('Привет Мир!')); return false;">
<br>
<br>
<input type="submit" name="hexTostr" value="hexTostr" onclick="window.alert(hexTostr('41f4404384324354422041c43844021')); return false;">

2 (изменено: BeginnerJS, 2016-02-19 21:42:29)

Re: JavaScript: Перевод текста в HEX и обратно

Там всё сложно и запутано: JavaScript работает со строками в кодировке Unicode-32, а charCodeAt() возвращает по модулю 2^16.

charCodeAt()