xinit.ru

Описание страницы

На этой странице собран ряд инструментов, которые могут быть полезны веб-разработчику или нетсталкеру. Ниже приведено немного теории об используемых в каждом из инструментов видах кодирования.

URL encode

Кодирование и декодирование URL. Необходимо из-за того, что в URL могут встречаться лишь цифры, буквы латинского алфавита и некоторые символы. Таким образом, для того, чтобы включить в URL любые другие симолы, их надо закодировать, используя допустимые.

Для кодирования произвольной строки символов в URL, строка должна быть в кодировке UTF-8. Допустимые в URL символы остаются в строке без изменений. Все остальные символы разбиваются на октеты согласно кодам в UTF-8 и преобразуются в шестнадцатеричный вид. Каждый октет предваряется символом "%".

Например, строка "RU - РФ" кодируется так:

Исходный текст: R U <пробел> - <пробел> Р Ф
UTF-8 код: 20 20 D0 A0 D0 A4
URL-код: R U %20 - %20 %D0%A0 %D0%A4
Результат: RU%20-%20%D0%A0%D0%A4

HTML entities

Сущности HTML. Чаще всего используются в SGML, XML и HTML-документах с 8-битными кодировками для представления символов, которых нет в используемой кодовой таблице. Также применяются в документах с кодировкой Unicode, в основном для отображения недопустимых в данном месте документа символов.

Сущности начинаются с символа амперсанда "&" и имеют вид: &имя;, или &#0000; или &#xFFFF;, где 0000 — код символа из таблицы UCS (Universal Character Set, Универсальная таблица символов) в десятичной системе счисления, а FFFF — в шестнадцатеричной.

Обратите внимение, что вопреки расхожему мнению, используется код символа в таблице UCS, а не UTF-8, в отличии от того же URL-кодирования.

Для примера, закодируем строку из предыдущего раздела ("RU - РФ"):

Исходный текст: R U <пробел> - <пробел> Р Ф
UCS код: hex 00 52 00 55 00 20 00 2D 00 20 04 20 04 24
dec 82 85 32 45 32 1056 1060
HTML-entities hex &#x52; &#x55; &#x20; &#x2D; &#x20; &#x420; &#x424;
dec &#82; &#85; &#32; &#45; &#32; &#1056; &#1060;
Результат: hex &#x52;&#x55;&#x20;&#x2D;&#x20;&#x420;&#x424;
dec &#82;&#85;&#32;&#45;&#32;&#1056;&#1060;

В настоящее время рекомендуется использовать кодировку UTF-8 для любых XML и HTML документов (а также вообще везде, где это возможно), так что сущности HTML, по большей части, не нужны, хоть и допустимы. Обязательным и корректным является использование только тех HTML-сущностей, которые заменяют недопустимые или невоспроизводимые символы, например:
<&lt;, &#60;, &#x3c;
"&quot;, &#34;, &#x22;
&&amp;, &#38;, &#x26;

Сервис на этом сайте преобразует в HTML-сущности все символы UCS размером не более 2 байт по схеме &#0000;, т.е. в десятичной системе. Обратное преобразование (сущности в текст) проводится для всех сущностей в любой форме записи, включая мнемоническую.

Base64

Кодирование любого текста, используя символы A-Z, a-z, 0-9, +, /. Для обозначения размера последнего блока данных, также используется символ =.

Данный метод кодирования был придуман для того, чтобы отправлять двоичные данные по каналам, способным передавать только 7-битные ASCII-символы. Более того, данный вид кодирования использует только т.н. печатную часть таблицы ASCII, т.е. любой закодированный в Base64 двоичный файл можно не только вывести на экран, но даже распечатать и послать по почте (а можно и почтовым голубем), а затем отсканировать, распознать (или перепечатать вручную, это кому как удобнее) и раскодировать опять в бинарный файл.

Почему не использовать другие виды кодирования, например, то же URL-кодирование, если отвлечься от UTF-8 и преобразовывать бинарные символы? Ответ заключается в эффективности хранения данных. В base64, каждые 3 байта исходного текста кодируются всего четырьмя ASCII-символами, а это всего 4 байта для популярных однобайтовых кодировок и UTF-8.

Timestamp

UNIX-время или POSIX-время. Количество секунд, прошедших с начала UNIX-эпохи, т.е. с 00:00:00 (по Гринвичу) 1 января 1970 года в системе UTC.

UNIX-время обычно используется в компьютерных системах, т.к. оно легко для представления (32-х или 64-битное целое число) и просто для восприятия и воспроизводства человеком (обычное целое число, например: 946684799).

Когда целого количества секунд недостаточно, timestamp может записываться в миллисекундах (в объекте Data языка программирования JavaScript, для представления времени используется именно количество миллисекунд), однако это не соответствует общепринятому стандарту.

Инструменты web-разработчика

URL кодирование/декодирование

Введена некорректная последовательность

HTML-entity кодирование/декодирование

Введена некорректная последовательность

Base64 кодирование/декодирование

Скачать раскодированные данные
{{filename}}
Считать исходные данные из файла. Так можно кодировать в base64 бинарники
Кодировка применяется при декодировании данных
Введена некорректная последовательность

Преобразование Timestamp

Введена некорректная последовательность
Обычно, timestamp является количеством секунд
UTC+
    ::. Введена некорректная последовательность Формат ISO 8601: 2014-12-31 23:59:59.999,
год - 4 цифры, количество миллисекунд - 3 цифры от 0 до 999, остальное по 2 цифры
ISO 8601: {{data.isoDate}}
RFC: {{data.rfcDate}}

Инструкция:

Кодирование работает в обе стороны в режиме реально времени. Чтобы закодировать текст, просто введите его в поле Исходный текст. Для раскодирования закодированного текста, введите его в поле Закодированный.

При кодировании в Base64, кроме ввода текста, вы можете выбрать любой файл (например: текстовый файл, изображение, документ LibreOffice или MS Office, архив или исполняемый файл) — он будет закодирован без какого-либо преобразования.

Если вы раскодируете Base64-текст, то можете выбрать кодировку — она будет применена к результату декодирования. При этом, можно многократно менять кодировку текста, подбирая подходящую.

Если вы раскодируете бинарный файл (например: картинку, архив или документ), его можно скачать, нажав на ссылку Скачать раскодированные данные под полем Исходный текст.

Timestamp может быть задан как в секундах (чаще всего), так и в миллисекундах. Для редактирования полей Часовой пояс и Дата, время можно использовать кнопки Вверх и Вниз. Для быстрой навигации по полям Дата, время используйте кнопки Влево и Вправо.

Для большего понимания происходящего, советую ознакомиться с вкладкой Доп. информация вверху страницы (под скрепкой).

Приватность:

Никакие введенные на этой странице данные никуда не передаются. Все преобразования происходят только в вашем браузере.

вверх