ВебмастерскаяСекреты вебмастера

Преобразование HEX в текст в JavaScript

Преобразование HEX в текст в JavaScript

Доброго времени суток! При работе с данными часто бывает так, что они приходят не в том формате/кодировке в которой мы их ожидаем. Поэтому, перед тем как начать работать с такими данными нам приходиться их преобразовать к нужному нам формату. Например, мне в одном из проектов клиента пришлось работать с текстовыми данными, которые должны были быть в формате ASCII, но в действительности оказались вшестнадцатеричном представлении (HEX). Для работы с этими данными их пришлось преобразовать из шестнадцатеричного формата в обычный понятный человеку текстовый формат с помощью следующей функции:


// конвертируем hex-строку в ascii-строку
function hex2text(hex_string) 
{
    const hex = hex_string.toString(); // конвертируем в строку
    let out = '';

    // i += 2 - так в шестнадцатеричном виде число представлено двумя символами
    for (let i = 0; i < hex.length; i += 2) 
    {
        // код символа в шестнадцетиричном представлении
        const charCode = parseInt(hex.substr(i, 2), 16);
        out += String.fromCharCode(charCode);
    }

    return out;
}

Функция ниже делает преобразование обратное предыдущей функции, т.е. из текста в HEX:


function text2hex(text) 
{
    let char;
    let out = "";

    // проходимся циклом по всей строке и берем по одному символу
    for(let i = 0; i < text.length; i++)
    {
        char = text.charCodeAt(i); // получаем код символа по индексу i
        char = char.toString(16); // преобразуем число в шестнадцатеричное представление
        out += char;
    }

    return out.toUpperCase(); // возвращаем строку в верхнем регистре
}

Таким образом, вот так просто можно преобразовать строку из одного представления (hex) в другое (text) в JavaScript.

Источник

Статьи по теме

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Back to top button