Расшифровать текст в кодировке: Универсальный декодер текста — Хитрые инструменты

Содержание

Universal online Cyrillic decoder — recover your texts

Universal online Cyrillic decoder — recover your texts Version: 20210806 By the same author: Virtour.fr — visites virtuelles

Output

The resulting text will be displayed here…

Guestbook

Please link to this site!
<a href=»https://2cyr.com/decode/»>Universal Cyrillic decoder</a>

Custom Work
For a small fee I can help you quickly recode/recover large pieces of data — texts, databases, websites… or write custom functions you can use (invoice available).
FAQ and contact information.

About the program

Welcome! You may find this site useful, if you have recieved some texts that you believe are written in the Cyrillic alphabet, but instead are displayed in some strange combination of bizarre characters. This program will try to guess the encoding, and if it does not, it will show samples, examples of all encoding-combinations, so as you will be able to select the good one.

How to

  • Paste the text to decode in the big text area. The first few words will be analyzed so they should be (scrambled) in supposed Cyrillic.
  • The program will try to decode the text and will print the result below.
  • If the translation is successful, you will see the text in Cyrillic characters and will be able to copy it and save it if it’s important.
  • If the translation isn’t successful (still the text is not in Cyrillic but in the same or other unintelligible characters), you can choose from the newly created select-listbox the variant that is in Cyrillic (if there are more than one, select the longest). By pressing the button OK you will have the correct text converted.
  • If the text is not totally converted, try all other variants in Cyrillic from the select-listbox.

Limits

  • If your text contains question marks «???? ?? ??????», the problem is with the sender and no recovery will be possible. Ask them to resend the text, eventually as an ordinary text file or in LibreOffice/OpenOffice/MSOffice format.
  • There is no claim that every text is recoverable, even if you are certain that the text is in Cyrillic.
  • The analyzed and converted text is limited to 100 KiB.
  • A 100% precision is not always achieved — in a conversion from a codepage to another code page, some characters may be lost, like the Bulgarian quotes or rarely some single letters. Some of this depends on your Windows Clipboard character handling.
  • The program will try a maximum of 7245 variants in two or three levels: if there had been a multiple encoding like koi8(utf(cp1251(utf))), it will not be detected or tested. Usually the possible and displayed correct variants are between 32 and 255.
  • If a part of the text is encoded with one code page, and another part — with another code page, the program could recognize only one of the parts at a time.

Terms of use

Please notice that this freeware program is created with the hope that it would be useful, but has no warranty, not even an implied warranty for fitness for any particular use. Please use it at your own risk.

If you have very long texts to translate, please make sure you have a backup copy.

What’s new

  • March 2021 : After a server upgrade, the program stopped working and some parts of it had to be rewritten.
  • May 2020 : Added Тоҷикӣ/Tajik translation, thanks to Анвар/Anvar.
  • October 2017 : Added «Select all / Copy» button.
  • July 2016 : SSL Certificate installed, you can now access the Decoder on a secure connection.
  • October 2013 : I am trying different optimizations for the system which should make the decoder run faster and handle more text. If you notice any problem, please notify me ASAP.
  • March 2013 : My hosting provider sent me a warning that the Decoder is using too much server CPU power and its processes were killed more than 100 times. I am making some changes so that the program will use less CPU, especially when reposting a previously sampled text, however, the decoded form may load somewhat slower. Please contact me if you have some difficulties using the program.
  • 2012-08-09 : Added French translation, thanks to Arnaud D.
  • 2011-03-06 : Added Belorussian translation, thanks to Зыль and Aliaksandr Hliakau.
  • 31.07.10 : Added Serbian translation, thanks to Miodrag Danilovic (Boston — Beograd).
  • 07.05.09 : Raised limit of MAX text size to 50 kiB.
  • may 2009 : Added Ukrainian interface thanks to Barmalini.
  • 2008-2009 : A number of small fixes and tweaks of the detection algorithm. Changed interface to default to automatic decoding.
  • 12.08.07 : Fixed Russian language translation, thanks to Petr Vasilyev. This page will be significantly restructured in the near future.
  • 10.11.06 : Three new postfilters added: «base64», «unix-to-unix» и «bin-to-hex», theoretically the tested combinations are 4725. Changes to the frequency analysis function (testing).
  • 11.10.06 : The main site is on a new hardware server, should run faster.
  • 11.09.06 : The program now uses PHP5 and should run times faster.
  • 19.08.06 : Because of a broken DNS entry, this site was inaccessible from 06:00 on 15 august up to 15:00 on 18 august. That was the reason for me to set two «mirror» sites (5ko.free.fr/decode and www.accent.bg/decode) with the same program. If the original has a problem, you can find the copies in Google and recover your texts.
  • 17.06.06 : Added two more antique Cyrillic encodings, MIK и KOI-7, but you better not need them.
  • 03.03.06
    : Added Slovak translation, thanks to Martin from KPR Slovakia.
  • 15.02.06 : More encodings added and tested.
  • 20.10.05 : Small improvement to the frequency-analysis function: for texts, written in all-capital letters.
  • 14.10.05 : Two more gmail-Cyrillic encodings were added. Theoretically the tested combinations are 2112.
  • 15.06.05 : Russian language interface was added. Big thanks to chAlx!
  • 16.02.05 : One more postfilter decoding is added, for strings like this: «%u043A%u0438%u0440%u0438%u043B%u0438%u0446%u0430».
  • 05.02.05 : More encodings tests added, the number of tested encodings is doubled, but thus the program may work slightly slower.
  • 03.02.05 : The frequency analysis function that detects the original encoding works much better now. Currently the program recognises most of the encodings if the first few words are not too weird. It although still needs some improvement.
  • 15.01.05 : The input text limit is raised from 10 to 20 kB.
  • 01.12.04 : First public release.

Back to the Latin to Cyrillic convertor.

Расшифровать или кодировать текст Unicode

Share

http://online-toolz.com/tools/text-unicode-entities-convertor.php

Unicode является стандартом вычислительной отрасли для последовательного кодирования, представления и обработки текста, выраженного в большинстве мировых систем письменности. Разработанная совместно со стандартом Universal Character Set и опубликованная в виде книги как The Unicode Standard, последняя версия Unicode состоит из репертуара из более чем 109 000 символов, охватывающих 93 скрипта, набора диаграмм кода для визуальной справки, методологии кодирования и набора стандартных кодировки символов, перечисление свойств символов, таких как верхний и нижний регистр, набор компьютерных файлов справочных данных и ряд связанных элементов, таких как свойства символов, правила нормализации, декомпозиции, сортировки, рендеринга и двунаправленного порядка отображения (для правильного отображения текст, содержащий как скрипты справа налево, такие как арабский и иврит, так и скрипты слева направо). Начиная с 2011 года, самой последней крупной версией Unicode является Unicode 6.0. Консорциум Unicode, некоммерческая организация, которая координирует разработку Unicode, имеет амбициозную цель в конечном итоге заменить существующие схемы кодирования символов Unicode и его стандартный формат преобразования Unicode (UTF) , поскольку многие из существующих схем ограничены по размеру и объему и несовместимы с многоязычными средами. Успех Unicode в унификации наборов символов привел к его широкому и преобладающему использованию в интернационализации и локализации компьютерного программного обеспечения. Стандарт был реализован во многих последних технологиях, включая XML, язык программирования Java, Microsoft .NET Framework и современные операционные системы.Unicode может быть реализован с помощью различных кодировок символов. Наиболее часто используемые кодировки являются UTF-8 (который использует один байт для любых символов ASCII, которые имеют одинаковые значения кода в кодировке UTF-8 и ASCII, и до четырех байт для других символов), теперь устаревший UCS-2 (который использует два байта для каждого символа, но не может кодировать каждый символ в текущем Стандарт Unicode) и UTF-16 (который расширяет UCS-2 для обработки кодовых точек за пределами UCS-2).

Source: Wikipedia

AKA:

Ключевые слова: текст, HTML, сущности, конвертер, кодировка, символы, экранирование, декодирование, unescape, unicode, utf8, ascii

Перекодировка текста онлайн

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

Есть два варианта: самому подбирать кодировки или доверить этот процесс специальным программам. Алгоритм нахождения исходной кодировки не очевиден и, скорее всего, сведется к простому перебору. Это долгий и неэффективный метод. Использование онлайн программ позволяет практически мгновенно увидеть читабельный текст.

Способы конвертирования текста онлайн

Любая поисковая система в ответ на запрос «Перекодирование онлайн» выдаст несколько адресов, где можно бесплатно расшифровать текст. Мы рассмотрим наиболее популярные и удобные сервисы, которые без труда переведут нечитаемый текст в изначальный вид.

Способ 1: 2Cyr

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

Перейти на сайт 2Cyr

Для перекодировки текста нужно выполнить следующие действия:

  1. Зайдите на сайт сервиса.
  2. Вставьте скопированный из источника текст в поле для декодирования.
  3. Размер исходного текста ограничен 100 КБ.

  4. В поле «Выбрать кодировку» нажмите на стрелку в конце поля. При этом выпадет список названий таблиц символов. Наведите указатель мыши на нужную. Если нет навыка в определении кодировки по виду знаков, рекомендуется оставить автоматический подбор. Запустите процесс, нажав кнопку «ОК» справа от поля выбора кодировки.
  5. Через небольшой промежуток времени в нижнем поле появится результат.
  6. Универсальный декодер определил тип исходной кодировки, но не справился с некоторыми символами. Тем не менее, текст можно прочитать и приблизительно понять, о чем идет речь. Конвертер кириллицы также предоставляет возможность посмотреть и выбрать альтернативные варианты расшифровки.

  7. В строке «Выберите читаемый вариант перекодировки» нажмите на стрелку справа. В выпадающем окне появится список вариантов. Выберите с помощью мыши любой и нажмите кнопку «ОК», которая находится справа.
  8. Итог появится в поле для результата.
  9. Способ 2: Alexpad

    В отличие от предыдущего декодера, здесь текст можно не только скопировать в поле, но и загрузить из файла. Документ должен быть в формате TXT и размером не более 500 КБ.

    Alexpad работает со всеми известными кодировками символов. На этом сайте также, как и на 2Cyr, есть теоретическая информация о проблеме, и о том как работает перекодировщик. Для ускорения работы декодер обрабатывает по 200 символов. Делает он это достаточно быстро, но если имеется большой текст, придется все время вставлять и копировать его куски.

    Перейти на сайт Alexpad

    Шаги по расшифровке текста с помощью этого сайта должны быть такими:

    1. Перейдите по ссылке выше.
    2. Скопированный тестовый фрагмент вставьте в поле.
    3. Нажмите кнопку «Определить».
    4. Результат выдается в виде таблицы, где текст приведен не полностью.
    5. Чтобы увидеть всю расшифрованную запись, необходимо нажать на кнопку с изображением двух стрелок.
    6. Другие варианты расшифровки можно увидеть, нажав на кнопку «Все найденные».

    Способ 3: Декодер студии Артемия Лебедева

    Расшифровщик дизайн студии имеет минималистичное оформление. Кроме поля для исходного текста на странице имеются кнопки для выбора простого или сложного перекодирования.

    Перейти на сайт студии Артемия Лебедева

    Работа с ним происходит следующим образом:

    1. Зайдите на сайт по ссылке, указанной выше.
    2. Текст для перекодировки вставьте в соответствующее поле.
    3. Выберите режим декодирования кнопками «Просто» или «Сложно». В данном случае выбран простой способ преобразования.
    4. Нажмите «Расшифровать».
    5. В режиме «Просто» результат работы Декодера Артемия Лебедева появляется в том же поле, куда ранее был вставлен текст.

      Итоговую информацию можно понять, но невозможно использовать в документах. Определены исходная и конечные кодировки символов.

    6. Для более глубокого преобразования следует нажать поле «Сложно».

      При этом способе доступен выбор таблиц символов. По умолчанию используется автоматическая кодировка.

    7. Целевая таблица символов выбирается щелчком мыши на поле «Автоматическая кодировка».
    8. Результат расшифровки можно увидеть во втором поле Декодера. В зависимости от разрешения монитора оно находится либо внизу экрана, либо справа.

    Качество обработки примерно такое же, как и в простом режиме. Присутствует информация об исходной и конечной кодировках текста.

    Тестирование онлайн перекодировщиков подтвердило, что, к сожалению, не всякий текст может быть приведен к нужному виду без ошибок. Когда сервис не может найти соответствие какому-то числу, он подставляет на его место символ, близкий по числовому значению, а не изображению. Обычно используется вопросительный знак «?», но могут применяться и другие варианты. В таких случаях нужно или согласиться с таким представлением и попробовать разобраться в том, что получилось, или обратиться к профессионалам. Тем не менее, онлайн-декодеры имеют право на жизнь. Они часто помогают прочитать то, что, на первый взгляд, прочитать невозможно.

Как определить кодировку онлайн

Способ 1: 2cyr

Основное предназначение онлайн-сервиса 2cyr заключается в декодировании определенного отрывка текста, однако это не помешает использовать встроенные в него инструменты для определения кодировки, для чего потребуется только скопировать небольшую надпись.

Перейти к онлайн-сервису 2cyr

  1. В самом декодере вставьте скопированный текст в соответствующую форму, используя контекстное меню или горячую клавишу Ctrl + V.
  2. Убедитесь в том, что текст был успешно добавлен, а затем в поле «Выберите кодировку» установите значение «Автоматически (рекомендуется)». Подтвердите распознавание, нажав по кнопке «ОК», которая расположена справа.
  3. Остается только ознакомиться с названием кодировки в поле «Отображается как», чтобы узнать ее.
  4. Дополнительно вы можете посмотреть перевод ее в читаемый вид, если та нечитабельна, а также узнать, какая кодировка использовалась для этого.
  5. В 2cyr есть и другие читаемые варианты, которые можно использовать в своих целях, переключаясь между ними в соответствующих всплывающих меню.

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

Способ 2: Online Decoder

Онлайн-сервис под названием Online Decoder тоже умеет определять кодировку текста в автоматическом режиме, а также переводить ее в читаемый вид или любые другие кодировки, если это требуется. Подбор символов на этом сайте осуществляется буквально в несколько кликов.

Перейти к онлайн-сервису Online Decoder

  1. Воспользуйтесь ссылкой выше или самостоятельно откройте главную страницу сайта Online Decoder, где сразу же активируйте поле для ввода и вставьте туда целевой текст.
  2. Напротив пункта «Раскодировать текст автоматически (рекомендуется)» нажмите по кнопке «Подбор» для запуска процесса распознавания.
  3. Та кодировка, в которую выполнен перевод, отображается второй.
  4. Исходная находится прямо после надписи «Я знаю нужные кодировки». Ее и надо узнать, если речь идет об определении стилистики символов.
  5. Перевод в выбранную конечную кодировку вы видите внизу, можете его изменить или скопировать.
  6. Используйте дополнительные инструменты сайта Online Decoder, если нужно продолжить взаимодействие с другими надписями.

Способ 3: FoxTools

FoxTools — еще один онлайн-сервис, основное предназначение которого заключается в декодировании текста, однако его функциональность можно использовать и для определения необходимого символьного набора, что происходит так:

Перейти к онлайн-сервису FoxTools

  1. Активируйте поле для ввода и вставьте туда скопированную ранее надпись.
  2. Снизу поля «Исходная кодировка» вы найдете кнопку «Определить», по которой и следует нажать для запуска процесса распознавания.
  3. Если параллельно осуществляется перевод в читаемый вид, выберите его из выпадающего меню сверху.
  4. Нажмите «Отправить», чтобы получить результат со всей необходимой информацией.
  5. Ознакомьтесь с параметром возле пункта «Исходная кодировка» для определения символьного набора. Если он отображен не в кодовом названии, найдите перевод через Википедию для общего понимания.
  6. Иногда FoxTools не распознает редко используемые кодировки, поэтому потребуется переключиться в режим «Все кодировки» и повторить процедуру подбора.
Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
ДА НЕТ
Поделиться статьей в социальных сетях:

Перевод кодировки онлайн: 3 рабочих способа

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

Сайты для перекодировки онлайн

Сегодня мы расскажем о самых популярных и действенных сайтах, которые помогут угадать кодировку и изменить ее на более понятную для вашего ПК. Чаще всего на таких сайтах работает автоматический алгоритм распознавания, однако в случае необходимости пользователь всегда может выбрать подходящую кодировку в ручном режиме.

Способ 1: Универсальный декодер

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

Работать можно только с текстом, размер которого не превышает 100 килобайт, кроме того, создатели ресурса не гарантируют, что перекодировка будет в 100% случаев успешной. Если ресурс не помог – просто попробуйте распознать текст с помощью других способов.

Перейти на сайт Универсальный декодер

  1. Копируем текст, который нужно декодировать, в верхнее поле. Желательно, чтобы в первых словах уже содержались непонятные символы, особенно в случаях, когда выбрано автоматическое распознавание.
  2. Указываем дополнительные параметры. Если необходимо, чтобы кодировка была распознана и преобразована без вмешательства пользователя, в поле «Выберите кодировку» щелкаем на «Автоматически». В расширенном режиме можно выбрать начальную кодировку и формат, в который нужно преобразовать текст. После завершения настройки щелкаем на кнопку «ОК».
  3. Преобразованный текст отобразится в поле «Результат», оттуда его можно скопировать и вставить в документ для последующего редактирования.

Обратите внимание на то, что если в отправленном вам документе вместо символов отображается «???? ?? ??????», преобразовать его вряд ли получится. Символы появляются из-за ошибок со стороны отправителя, поэтому просто попросите отправить вам текст повторно.

Способ 2: Студия Артемия Лебедева

Еще один сайт для работы с кодировкой, в отличие от предыдущего ресурса имеет более приятный дизайн. Предлагает пользователям два режима работы, простой и расширенный, в первом случае после декодировки пользователь видит результат, во втором случае видна начальная и конечная кодировка.

Перейти на сайт Студия Артемия Лебедева

  1. Выбираем режим декодировки на верхней панели. Мы будем работать с режимом «Сложно», чтобы сделать процесс более наглядным.
  2. Вставляем нужный для расшифровки текст в левое поле. Выбираем предполагаемую кодировку, желательно оставить автоматические настройки — так вероятность успешной дешифровки возрастет.
  3. Щелкаем на кнопку «Расшифровать».
  4. Результат появится в правом поле. Пользователь может самостоятельно выбрать конечную кодировку из ниспадающего списка.

С сайтом любая непонятная каша из символов быстро превращается в понятный русский текст. На данный момент работает ресурс со всеми известными кодировками.

Способ 3: Fox Tools

Fox Tools предназначен для универсальной декодировки непонятных символов в обычный русский текст. Пользователь может самостоятельно выбрать начальную и конечную кодировку, есть на сайте и автоматический режим.

Дизайн простой, без лишних наворотов и рекламы, которая мешает нормальной работе с ресурсом.

Перейти на сайт Fox Tools

  1. Вводим исходный текст в верхнее поле.
  2. Выбираем начальную и конечную кодировку. Если данные параметры неизвестны, оставляем настройки по умолчанию.
  3. После завершения настроек нажимаем на кнопку «Отправить».
  4. Из списка под начальным текстом выбираем читабельный вариант и щелкаем на него.
  5. Вновь нажимаем на кнопку «Отправить».
  6. Преобразованный текст будет отображаться в поле «Результат».

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

Читайте также: Выбор и изменение кодировки в Microsoft Word

Рассмотренный сайты позволяют всего в несколько кликов преобразовать непонятный набор символов в читаемый текст. Самым практичным оказался ресурс Универсальный декодер — он безошибочно перевел большинство зашифрованных текстов.

Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
ДА НЕТ

Изменение кодировки текста в файле и в браузере. Расшифровка кракозябр.

Кракозябры, иероглифы, закарлючки, вопросики, каракули — как только не описывают проблему слетевшей кодировки. Почему иногда вместо нормального текста отображается совершенно не читаемый набор странных символов? Вся проблема в том, что есть много алгоритмов кодирования текстовой информации, и если кодировка выбрана неверно, текст может измениться до неузнаваемости.

Можно ли превратить кракозябры обратно в нормальный текст? Расскажу о двух способах, как изменить кодировку в браузере и в текстовом документе.


Изменение кодировки в браузере

Чаще всего, набор символов можно увидеть в интернете, когда сайт полностью или частично не правильно отображается. В основном, браузер автоматически хорошо распознает кодировку,  но на всякий случай в каждом из них предусмотрена ручная смена кодировки.

Например, Mozilla Firefox нужно нажать ALT после чего, вверху открывается командное меню. А затем выбрать — Вид/Кодировка текста… И заменить на правильную.

Подобным образом, это меняется и в других браузерах.


Подбор кодировки в текстовом файле

Если такой текст в Microsoft Word нажмите — Файл/Параметры/Дополнительно/Общие… Поставьте галочку «Подтверждать преобразование файла при открытии». После этого, при открытии файла вы можете выбрать другую кодировку. Но есть более легкий способ.

Возьмем к примеру, слетевший текст содержания, при верстке книги, выглядел он вот так:

ÑÎÄÅÐÆÀÍÈÅ
Êàê Ìàøà íà ñâåò ïîÿâèëàñü ……………….. 5
Êàê Ìàøó íàçâàëè Ìàøåé ……………….. 10

Если не получается подобрать верную кодировку или искаженный текст у вас в текстовом файле «блокнот» можно воспользоваться онлайн декодером.

Сервис позволяет автоматически подобрать нужную кодировку. Достаточно только загрузить искаженный текст в соответствующее поле и нажать кнопку «Подбор» в случае успеха внизу отобразится нормальный текст.

 

(Visited 2 745 times, 1 visits today)

Определите кодировку текста — CodeRoad



Я получаю какие-то странные символы в ответ на веб-страницу. Я почти уверен, что это сообщение на русском языке, но кодировка кажется очень странной. Информация на веб-странице говорит мне, что кодировка ISO-8859-1. Вот пример ответа.

Âû ñòðàíè÷êå ïðåâüþøêàìè

Есть ли способ расшифровать этот ответ? Является ли ответ вообще спасительным.

python unicode character-encoding iso-8859-1
Поделиться Источник Neo     28 января 2011 в 14:00

2 ответа


  • Какую кодировку текста использовать?

    Мне нужно настроить кодировку текста PostgreSQL DB для обработки неамериканских английских символов, которые вы найдете в таких языках, как немецкий, испанский и французский. Что character encoding я должен использовать?

  • Определите кодировку ROT

    Я хочу определить, какой тип кодировки ROT используется, и на основе этого сделать правильное декодирование. Кроме того, я нашел следующий код, который действительно будет правильно декодировать rot13 sbbone в foobart: import codecs codecs.decode(‘sbbone’, ‘rot_13’) Дело в том, что я хотел бы…



4

Похоже, что кодировка на самом деле кириллица Windows-1251. Соответствующим образом переключите кодировку ваших веб-браузеров.

Например, текст, который вы предоставили в этой кодировке, является:

Вы страничке превьюшками

что, по словам автоматического перевода, означает «You page previews».

Поделиться borrible     28 января 2011 в 14:15



3

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

Вы страничке превьюшками

Это явно не ISO-8859-1.

Для преобразования этого в строку Unicode используйте метод decode :

b = "Âû ñòðàíè÷êå ïðåâüþøêàìè".encode("Latin-1")  # simulate the incoming byte string
u = b.decode("Windows-1251")
print(u)

Поделиться Philipp     28 января 2011 в 14:17


Похожие вопросы:


Как определить кодировку изображения с помощью заголовочных байтов

Поэтому я использую c#,, и мне нужно определить фактическую кодировку файла изображения. Большинство изображений могут быть в одном формате, одновременно имея другое расширение, и все же работать в…


Дублирование файлов OS X преобразует кодировку текста по умолчанию

Все файлы PHP в моем рабочем пространстве закодированы в Юникоде (UTF-8, № BOM) . Я часто дублирую существующий исходный файл, чтобы использовать его в качестве основы для нового скрипта. Неизменно…


Как определить кодировку текста?

Я получил какой-то кодированный текст, но не знаю, какая кодировка была использована. Есть ли способ определить кодировку текстового файла с помощью Python? Как я могу определить кодировку / кодовую…


Какую кодировку текста использовать?

Мне нужно настроить кодировку текста PostgreSQL DB для обработки неамериканских английских символов, которые вы найдете в таких языках, как немецкий, испанский и французский. Что character encoding…


Определите кодировку ROT

Я хочу определить, какой тип кодировки ROT используется, и на основе этого сделать правильное декодирование. Кроме того, я нашел следующий код, который действительно будет правильно декодировать…


Как обнаружить кодировку текста CString в iphone/iPad?

У меня есть смешанный набор CString в разных текстовых кодировках. Поскольку я не знаю оригинальную кодировку CString, как обнаружить кодировку текста CString в iphone/iPad ? Спасибо.


Как я могу обнаружить и преобразовать кодировку текста?

Какой-то текстовый (или html) документ из интернета не кодируется как UTF-8, поэтому я хочу преобразовать кодировку текстового документа в UTF-8. У вас есть какие-нибудь подсказки для работы с…


Какую кодировку текста JavaScript лучше всего использовать?

Я создаю сценарий поиска jQuery / AJAX и пытаюсь найти наилучшую кодировку текста для строки, которая отправляется в ожидающий файл PHP, который будет выполнять запрос SQL для получения результатов….


Проверьте кодировку текста в SQlite

Мне снится кошмар, когда я имею дело с неевропейскими текстами в SQlite году. Я думаю, проблема в том, что SQlite не кодирует текст в UTF8. Поэтому я хочу проверить, что это за кодировка, и,…


Вставка скопированного текста в кодировку vim проблема

Я копирую немного русского текста из браузера в vim, а затем в режиме вставки вставляю его с помощью CTRL-R + * и получаю целую кучу нечитаемых символов. Я попытался установить некоторую кодировку…

Base64 Decode and Encode — Online

Около Встречайте Base64 Decode and Encode, простой онлайн-инструмент, который делает именно то, что говорит: декодирует из кодировки Base64, а также быстро и легко кодирует в нее. Base64 кодирует ваши данные без проблем или декодирует их в удобочитаемый формат. Схемы кодирования

Base64 обычно используются, когда необходимо кодировать двоичные данные, особенно когда эти данные необходимо хранить и передавать на носителях, предназначенных для работы с текстом.Эта кодировка помогает гарантировать, что данные останутся нетронутыми без изменений во время транспортировки. Base64 обычно используется в ряде приложений, включая электронную почту через MIME, а также для хранения сложных данных в XML или JSON.

Дополнительные параметры

  • Набор символов: В случае текстовых данных схема кодирования не содержит набора символов, поэтому вы должны указать, какой набор символов использовался в процессе кодирования. Обычно это UTF-8, но может быть и множество других; если вы не уверены, поиграйте с доступными опциями или попробуйте опцию автоопределения.Эта информация используется для преобразования декодированных данных в набор символов нашего веб-сайта, чтобы все буквы и символы могли отображаться правильно. Обратите внимание, что это не имеет отношения к файлам, поскольку к ним не нужно применять безопасные веб-преобразования.
  • Декодировать каждую строку отдельно: Закодированные данные обычно состоят из непрерывного текста, поэтому даже символы новой строки преобразуются в их закодированные в Base64 формы. Перед декодированием все незакодированные пробелы удаляются из ввода для защиты целостности ввода.Эта опция полезна, если вы собираетесь декодировать несколько независимых записей данных, разделенных переносом строки.
  • Режим реального времени: Когда вы включаете эту опцию, введенные данные немедленно декодируются с помощью встроенных функций JavaScript вашего браузера, без отправки какой-либо информации на наши серверы. В настоящее время этот режим поддерживает только набор символов UTF-8.
Надежно и надежно

Все коммуникации с нашими серверами осуществляются через безопасные зашифрованные соединения SSL (https).Мы удаляем загруженные файлы с наших серверов сразу после обработки, а полученный загружаемый файл удаляется сразу после первой попытки загрузки или 15 минут бездействия (в зависимости от того, что короче). Мы никоим образом не храним и не проверяем содержимое отправленных данных или загруженных файлов. Ознакомьтесь с нашей политикой конфиденциальности ниже для получения более подробной информации.

Совершенно бесплатно

Наш инструмент можно использовать бесплатно. Отныне для таких простых задач не нужно скачивать никакого программного обеспечения.

Подробная информация о кодировании Base64

Base64 — это общий термин для ряда аналогичных схем кодирования, которые кодируют двоичные данные, обрабатывая их численно и переводя в представление base-64. Термин Base64 происходит от конкретной кодировки передачи содержимого MIME.

Дизайн

Конкретный выбор символов для создания 64 символов, необходимых для Base64, зависит от реализации. Общее правило состоит в том, чтобы выбрать набор из 64 символов, который одновременно 1) является частью подмножества, общего для большинства кодировок, и 2) также пригоден для печати.Эта комбинация оставляет маловероятным изменение данных при передаче через такие системы, как электронная почта, которые традиционно не были 8-битными чистыми. Например, реализация MIME Base64 использует A-Z, a-z и 0-9 для первых 62 значений, а также «+» и «/» для последних двух. Другие варианты, обычно производные от Base64, разделяют это свойство, но отличаются символами, выбранными для последних двух значений; Примером является безопасный для URL и имени файла вариант «RFC 4648 / Base64URL», в котором используются «-» и «_».

Пример

Вот цитата из «Левиафана» Томаса Гоббса:

« Человек отличается не только своим разумом, но и… «

Это представлено как последовательность байтов ASCII и закодировано по схеме MIME Base64 следующим образом:

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1d в кодировке 900u 900u, закодированное в кодировке 900u в кодировке 900u в кодировке 900u в кодировке ASCII

, закодированное в кодировке 900u

в кодировке TWFZB24sIGJ1C, 900u, закодированное в кодировке 900u. буквы «M», «a» и «n» хранятся как байты 77, 97, 110, которые эквивалентны «01001101», «01100001» и «01101110» в базе 2. Эти три байта объединены вместе в 24-битном буфере, образуя двоичную последовательность «010011010110000101101110».Пакеты из 6 бит (6 бит имеют максимум 64 различных двоичных значения) преобразуются в 4 числа (24 = 4 * 6 бит), которые затем преобразуются в соответствующие им значения в Base64.


Как показывает этот пример, кодирование Base64 преобразует 3 некодированных байта (в данном случае символы ASCII) в 4 закодированных символа ASCII.

URL Encode Decode — процентное кодирование и декодирование URL.

Используйте онлайн-инструмент, указанный выше, для кодирования или декодирования строки текста. Для всемирной совместимости URI должны кодироваться единообразно.Чтобы сопоставить широкий диапазон символов, используемых во всем мире, с 60 или около того разрешенными символами в URI, используется двухэтапный процесс:

  • Преобразование строки символов в последовательность байтов с использованием кодировки UTF-8
  • Преобразовать каждый байт, не являющийся буквой или цифрой ASCII, в% HH, где HH — шестнадцатеричное значение байта.

Например, строка: François, будет закодирована как: Fran% C3% A7ois

(«ç» кодируется в UTF-8 как два байта C3 (шестнадцатеричный) и A7 (шестнадцатеричный), которые затем записываются как три символа «% c3» и «% a7» соответственно.) Это может сделать URI довольно длинным (до 9 символов ASCII для одного символа Unicode), но намерение состоит в том, что браузерам требуется только для отображения декодированной формы, и многие протоколы могут отправлять UTF-8 без экранирования% HH.

Что такое кодировка URL?

Кодировка URL-адреса означает кодирование определенных символов в URL-адресе путем их замены одним или несколькими тройками символов, которые состоят из символ процента «% «, за которым следуют две шестнадцатеричные цифры.Две шестнадцатеричные цифры тройки (ей) представляют числовое значение заменяемого символа.

Термин Кодирование URL немного неточен, поскольку процедура кодирования не ограничивается URL-адреса (унифицированные указатели ресурсов), но также могут применяться к любым другие URI (унифицированные идентификаторы ресурсов) такие как URN (унифицированные имена ресурсов). Следовательно, следует предпочесть термин процентное кодирование.

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

Согласно RFC 3986, символы в URL-адресе должны быть взятым из определенного набора незарезервированных и зарезервированных символов ASCII. В URL нельзя использовать любые другие символы.

Незарезервированные символы могут кодироваться, но не должны кодироваться. Незарезервированные символы:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЭЮЯ 0 1 2 3 4 5 6 7 8 9 - _. ~

Зарезервированные символы необходимо кодировать только при определенных обстоятельствах.Зарезервированные символы:

! * '(); : @ & = + $, /? % # []

RFC 3986 не определяет, в соответствии с каким символом таблица кодирования не-ASCII-символов (например, умляуты ä, ö, ü) должны быть закодированным. Поскольку кодировка URL включает пару шестнадцатеричных цифр, а поскольку пара шестнадцатеричных цифр эквивалентна 8 битам, это будет теоретически можно использовать одну из 8-битных кодовых страниц для символов, отличных от ASCII (например,грамм. ISO-8859-1 для умляутов).

С другой стороны, поскольку многие языки имеют свою собственную 8-битную кодовую страницу, обработка всех этих различных 8-битных кодовых страниц была бы довольно сложной задачей. громоздкое дело. Некоторые языки даже не помещаются в 8-битную кодовую страницу (например, китайский). Следовательно, RFC 3629 предлагает использовать Таблица кодировки символов UTF-8 для символов, отличных от ASCII. Следующий инструмент учитывает это и предлагает выбрать между таблицей кодировки символов ASCII и символом UTF-8. таблица кодирования.Если вы выберете таблицу кодировки символов ASCII, появится предупреждающее сообщение, если URL-адрес закодирован / декодирован текст содержит символы, отличные от ASCII.

При отправке данных, которые были введены в формы HTML, имена и значения полей формы кодируются и отправляются на сервер в Сообщение HTTP-запроса с использованием метода GET или POST, или, исторически, по электронной почте. Кодировка, используемая по умолчанию, основана на очень ранней версии общих правил процентного кодирования URI с рядом модификаций, таких как нормализация новой строки и замена пробелов с « + » вместо «% 20 ».Тип данных MIME, закодированных таким образом, — application / x-www-form-urlencoded , и в настоящее время он определен (все еще очень устаревшим) в спецификациях HTML и XForms. В дополнение Спецификация CGI содержит правила того, как веб-серверы декодируют данные этого типа и делают их доступными для приложений.

При отправке в запросе HTTP GET данные application / x-www-form-urlencoded включаются в компонент запроса URI запроса. При отправке в запросе HTTP POST или по электронной почте данные помещаются в тело сообщения, а имя типа мультимедиа включается в заголовок Content-Type сообщения.

Конвертер

Base64 — Base 64 Cipher

Поиск инструмента

Кодировка Base64

Инструмент для дешифрования / шифрования с помощью базы 64. Base64 — это система кодирования, использующая 64 символа, выбранная для совместимости с большинством таблиц кодирования. Например, он используется в электронных письмах.

Результаты

Кодирование

Base64 — dCode

Тэги: Кодировка символов, Интернет

Поделиться

dCode и другие

dCode является бесплатным, а его инструменты являются ценным подспорьем в играх, математике, геокэшинге, головоломках и задачах, которые нужно решать каждый день!
Предложение? обратная связь? Жук ? идея ? Запись в dCode !

Декодер Base 64

Кодировщик Base64

Ответы на вопросы (FAQ)

Как зашифровать с использованием кодирования Base64

Кодирование Base 64 требует двоичного ввода.Для текста значения зависят от его кодировки (часто ASCII или Unicode).

Пример: Для кодирования DCODE, записанного 01100100 01000011 01101111 01100100 01100101 в двоичном формате (код ASCII)

Base 64 Кодирование начинается с разделения двоичного кода на группы по 6 битов, при необходимости заполняя его нулем.

Пример: Разделить как 011001 000100 001101 101111 011001 000110 0101 (+00)

Каждая группа из 6 бит имеет значение по основанию 10, оно соответствует символу в алфавите Base 64 (начинается с 0): ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + /

H 9019 9019 9019 9019 9019 П 9019 9019 9019 9019 9019 9019 X 9019 9019
0 A 1 B 2 C 3 D 4 E 5 G 6194 G 6194
8 I 9 J 10 K 11 L 12 M 13 N 14
16 Q 17 R 18 S 19 T 20 U 21 V
24 Y 25 Z 26 a 27 b 28 c 29 d e 31 f
32 g 33 h 34 i 35 j 36 м 39 n
40 o 41 p 42 q 43 r 44 46 u 47 v
48 w 49 x 50 y 51 z 52 52 0 2 55 3
56 4 57 5 58 6 59 7 60 8 61 9 62 + 63/

Пример: Преобразование из 011001 в основание 10 — 25, в алфавите 25 — Z, 000100 — 4 и т. Д. .для получения символов с номерами 25 4 13 47 25 6 20 или закодированного сообщения: ZENvZGU

Base 64 работает только с группами из 4 символов, при необходимости заполните =.

Пример: Наконец, ZENvZGU (имеющий 7 символов) становится ZENvZGU = (8 символов, кратное 4), что является последним сообщением в кодировке base64 .

Как расшифровать кодировку Base64

Расшифровка заключается в нахождении значений букв в алфавите Base64 : ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + / (знак равенства = игнорируется)

Пример: Кодированное сообщение — YjY0, соответствующие значения Y, j, Y, 0 в алфавите: 24,35,24,52

Значения преобразуются в 6-битную двоичную форму.

Пример: 24 преобразуется в 011000, 35 = 100011 и т. Д. Декодированное двоичное сообщение имеет вид 011000100011011000110100

Декодирование Base64 завершено. Затем двоичное сообщение читается с использованием желаемой системы кодирования (ASCII, Unicode и т. Д.).

Пример: В ASCII 01100010,00110110,00110100 соответствует обычному тексту b, 6,4

Как распознать зашифрованный текст Base64?

Сообщение теоретически состоит из числа символов, кратного 4.С этой целью наличие символов = (равно) в конце сообщения является большой подсказкой.

Сообщение может содержать не более 65 различных символов (и, возможно, пробел или разрыв строки). По умолчанию это: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + / =

Base64 обычно используется в электронной почте для сообщений и вложений, отличных от ASCII (через стандарт MIME: многоцелевые расширения электронной почты в Интернете)

Сеть Usenet использовала Base64 для передачи файлов, любое указание на нее является ключом к разгадке.

Несколько подписей пользователей или сайтов связаны с Base64 как код 6.0 (94/25) или с расширениями .b64

Base64 иногда используется для хранения паролей, которые нельзя зашифровать, чтобы предотвратить их отображение в виде обычного текста, как в файлах конфигурации XML определенного программного обеспечения (базы данных, FTP, Filezilla и т. Д.)

Почему используется Base64?

Сообщение в кодировке Base64 будет содержать только печатаемые символы ASCII ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + / =

Это свойство позволяет передавать любые данные в системах, изначально предназначенных для передачи только текста (не беспокоясь о начальной кодировке или о том, как символы будут отображаться на экране получателя сообщения)

Всегда ли Base64 заканчивается на ==?

Нет, как указано в принципе кодирования, наличие символов = (равно) не является обязательным, оно встречается примерно 3 раза из 4.

Почему размер данных увеличивается?

В Base64 4 символа ASCII используются для кодирования 3 байтов. Объем увеличен на 33%.

Пример: Base64 (6 символов) кодируется QmFzZTY0 (8 символов или + 33%)

base64 (без прописных букв) кодируется YmFzZTY0

Почему Base64 так назван?

base64 использует алфавит из шестидесяти четырех символов для кодирования любой двоичной строки (в базе 2), поэтому это математическое преобразование в base 64 .

Что такое Base64URL?

Base64URL — это вариант Base64 , подходящий для URL-адресов (http). Символы 62 + и 63 / могут вызывать проблемы с URL, их можно заменить соответственно на — и _. Кроме того, удаляется знак равенства =.

Когда был изобретен Base64?

RFC 2045, официальная норма Base64 с 1996 года

Задайте новый вопрос

Исходный код

dCode сохраняет за собой право собственности на исходный код онлайн-инструмента «Кодирование Base64».За исключением явной лицензии с открытым исходным кодом (обозначенной CC / Creative Commons / бесплатно), любой алгоритм, апплет или фрагмент кодирования Base64 (конвертер, решатель, шифрование / дешифрование, кодирование / декодирование, шифрование / дешифрование, переводчик) или любое кодирование Base64 ‘функция (вычислить, преобразовать, решить, расшифровать / зашифровать, расшифровать / зашифровать, декодировать / закодировать, перевести) написана на любом информатическом языке (Python, Java, PHP, C #, Javascript, Matlab и т. д.) и без загрузки данных, скрипт , копипаст или доступ к API для Base64 Coding будут бесплатными, то же самое для автономного использования на ПК, планшете, iPhone или Android! dCode распространяется бесплатно и онлайн.

Нужна помощь?

Пожалуйста, посетите наше сообщество dCode Discord для получения помощи!
NB: для зашифрованных сообщений проверьте наш автоматический идентификатор шифра!

Вопросы / комментарии

Сводка

Похожие страницы

Поддержка

Форум / Справка

Ключевые слова

base, base64, b64,64, mime, usenet, email, шестьдесят, четыре, qmfzzty0, ymfzzty0, base64url, равно

Ссылки


Источник: https: // www.dcode.fr/base-64-encoding

© 2021 dCode — Лучший «инструментарий» для решения любых игр / загадок / геокешинга / CTF.

URL-декодирование и кодирование — онлайн

Около Встречайте URL Decode and Encode, простой онлайн-инструмент, который делает именно то, что говорит: декодирует из URL-кодирования, а также быстро и легко кодирует его. URL-кодируйте ваши данные без проблем или декодируйте их в удобочитаемый формат. Кодирование URL-адреса

, также известное как «процентное кодирование», представляет собой механизм кодирования информации в унифицированном идентификаторе ресурса (URI).Хотя это называется кодированием URL-адресов, на самом деле оно используется более широко в основном наборе универсальных идентификаторов ресурсов (URI), который включает как универсальный указатель ресурсов (URL), так и универсальное имя ресурса (URN). Как таковой, он также используется при подготовке данных типа носителя «application / x-www-form-urlencoded», как это часто бывает при отправке данных HTML-формы в HTTP-запросах.

Дополнительные параметры

  • Набор символов: В случае текстовых данных схема кодирования не содержит набора символов, поэтому вы должны указать, какой набор символов использовался в процессе кодирования.Обычно это UTF-8, но может быть и множество других; если вы не уверены, поиграйте с доступными опциями или попробуйте опцию автоопределения. Эта информация используется для преобразования декодированных данных в набор символов нашего веб-сайта, чтобы все буквы и символы могли отображаться правильно. Обратите внимание, что это не имеет отношения к файлам, поскольку к ним не нужно применять безопасные веб-преобразования.
  • Декодировать каждую строку отдельно: Закодированные данные обычно состоят из непрерывного текста, поэтому даже символы новой строки преобразуются в их формы с процентной кодировкой.Перед декодированием все незакодированные пробелы удаляются из ввода для защиты целостности ввода. Эта опция полезна, если вы собираетесь декодировать несколько независимых записей данных, разделенных переносом строки.
  • Режим реального времени: Когда вы включаете эту опцию, введенные данные немедленно декодируются с помощью встроенных функций JavaScript вашего браузера, без отправки какой-либо информации на наши серверы. В настоящее время этот режим поддерживает только набор символов UTF-8.
Надежно и надежно

Все коммуникации с нашими серверами осуществляются через безопасные зашифрованные соединения SSL (https).Мы удаляем загруженные файлы с наших серверов сразу после обработки, а полученный загружаемый файл удаляется сразу после первой попытки загрузки или 15 минут бездействия (в зависимости от того, что короче). Мы никоим образом не храним и не проверяем содержимое отправленных данных или загруженных файлов. Ознакомьтесь с нашей политикой конфиденциальности ниже для получения более подробной информации.

Совершенно бесплатно

Наш инструмент можно использовать бесплатно. Отныне для таких простых задач не нужно скачивать никакого программного обеспечения.

Подробная информация о кодировке URL-адресов

Типы символов URI

Допустимые символы в URI либо зарезервированы, либо не зарезервированы (или символ процента как часть процентного кодирования). Зарезервированные символы — это символы, которые иногда имеют особое значение. Например, символы прямой косой черты используются для разделения различных частей URL-адреса (или, в более общем смысле, URI). Незарезервированные символы не имеют такого особого значения. При использовании процентного кодирования зарезервированные символы представляются с помощью специальных последовательностей символов.Наборы зарезервированных и незарезервированных символов, а также обстоятельства, при которых определенные зарезервированные символы имеют особое значение, немного меняются с каждой новой редакцией спецификаций, управляющих URI и схемами URI.



Другие символы в URI должны быть закодированы в процентах.

Зарезервированные символы с процентным кодированием

Когда символ из зарезервированного набора («зарезервированный символ») имеет особое значение («зарезервированное назначение») в конкретном контексте, а схема URI говорит, что необходимо использовать это символ для какой-либо другой цели, тогда этот символ должен быть закодирован в процентах.Процентное кодирование зарезервированного символа означает преобразование символа в соответствующее ему байтовое значение в ASCII и последующее представление этого значения в виде пары шестнадцатеричных цифр. Цифры, которым предшествует знак процента («%»), затем используются в URI вместо зарезервированного символа. (Для символа, отличного от ASCII, он обычно преобразуется в свою последовательность байтов в UTF-8, а затем каждое значение байта представляется, как указано выше.)

Зарезервированный символ «/», например, если он используется в пути « «компонент URI, имеет особое значение как разделитель между сегментами пути.Если в соответствии с заданной схемой URI «/» должен находиться в сегменте пути, тогда в этом сегменте должны использоваться три символа «% 2F» (или «% 2f») вместо «/».


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

В компоненте «запрос» URI (часть после символа «?»), Например, «/» по-прежнему считается зарезервированным символом, но обычно не имеет зарезервированного назначения (если в конкретной схеме URI не указано иное).Символ не нужно кодировать в процентах, если он не имеет зарезервированной цели.

URI, которые различаются только тем, является ли зарезервированный символ закодированным в процентах или нет, обычно считаются неэквивалентными (обозначающими один и тот же ресурс), кроме случаев, когда рассматриваемые зарезервированные символы не имеют зарезервированной цели. Это определение зависит от правил, установленных для зарезервированных символов отдельными схемами URI.

Процентное кодирование незарезервированных символов

Символы из незарезервированного набора никогда не нуждаются в процентном кодировании.

URI, которые различаются только тем, является ли незарезервированный символ закодированным в процентах или нет, эквивалентны по определению, но процессоры URI на практике не всегда могут обрабатывать их одинаково. Например, потребители URI не должны обрабатывать «% 41» иначе, чем «A» («% 41» — это процентное кодирование «A») или «% 7E» иначе, чем «~», но некоторые это делают. Поэтому для максимальной совместимости производителям URI не рекомендуется использовать процентное кодирование незарезервированных символов.

Процентное кодирование символа процента

Поскольку символ процента («%») служит индикатором для октетов, закодированных в процентах, он должен быть закодирован в процентах как «% 25», чтобы этот октет использовался в качестве данных в URI.

Процентное кодирование произвольных данных

Большинство схем URI включают представление произвольных данных, таких как IP-адрес или путь файловой системы, как компоненты URI. Спецификации схемы URI должны, но часто этого не делать, предоставлять явное сопоставление между символами URI и всеми возможными значениями данных, представленными этими символами.

Двоичные данные

С момента публикации RFC 1738 в 1994 году было указано, что схемы, которые обеспечивают представление двоичных данных в URI, должны разделять данные на 8-битные байты и кодировать каждый байт в процентах в таким же образом, как указано выше.Например, байтовое значение 0F (шестнадцатеричное) должно быть представлено как «% 0F», а байтовое значение 41 (шестнадцатеричное) может быть представлено как «A» или «% 41». Использование незакодированных символов для буквенно-цифровых и других незарезервированных символов обычно предпочтительнее, поскольку это приводит к более коротким URL-адресам.

Символьные данные

Процедура процентного кодирования двоичных данных часто экстраполировалась, иногда неправильно или не полностью, для применения к символьным данным.В годы становления Всемирной паутины при работе с символами данных в репертуаре ASCII и использовании соответствующих им байтов в ASCII в качестве основы для определения последовательностей, закодированных в процентах, эта практика была относительно безвредной; многие считали, что символы и байты взаимно однозначно сопоставлены и взаимозаменяемы. Однако потребность в представлении символов вне диапазона ASCII быстро росла, и схемы и протоколы URI часто не обеспечивали стандартных правил подготовки символьных данных для включения в URI.Следовательно, веб-приложения начали использовать различные многобайтовые кодировки, кодировки с отслеживанием состояния и другие несовместимые с ASCII кодировки в качестве основы для процентного кодирования, что привело к неоднозначности, а также затруднило надежную интерпретацию URI.

Например, многие схемы и протоколы URI, основанные на RFC 1738 и 2396, предполагают, что символы данных будут преобразованы в байты в соответствии с некоторой неопределенной кодировкой символов, прежде чем будут представлены в URI незарезервированными символами или байтами, закодированными в процентах.Если схема не позволяет URI предоставлять подсказку о том, какая кодировка использовалась, или если кодировка конфликтует с использованием ASCII для процентного кодирования зарезервированных и незарезервированных символов, то URI не может быть надежно интерпретирован. Некоторые схемы вообще не учитывают кодирование и вместо этого просто предлагают, чтобы символы данных отображались непосредственно на символы URI, что оставляет на усмотрение отдельных пользователей решать, следует ли и как процентно кодировать символы данных, которые не входят ни в зарезервированные, ни в незарезервированные наборы.


Произвольные символьные данные иногда кодируются в процентах и ​​используются в ситуациях, не связанных с URI, например, для программ обфускации паролей или других системных протоколов трансляции.

Base64 — Глоссарий веб-документации MDN: Определения терминов, связанных с Интернетом

Base64 — это группа аналогичных схем кодирования двоичного кода в текст, которые представляют двоичные данные в строковом формате ASCII путем их перевода в представление radix-64. Термин Base64 происходит от конкретной кодировки передачи содержимого MIME.

Схемы кодирования

Base64 обычно используются, когда необходимо кодировать двоичные данные, которые необходимо хранить и передавать на носителях, предназначенных для работы с ASCII. Это необходимо для того, чтобы данные оставались неизменными без изменений во время транспортировки. Base64 обычно используется в ряде приложений, включая электронную почту через MIME и хранение сложных данных в XML.

Одним из распространенных приложений кодирования Base64 в Интернете является кодирование двоичных данных, чтобы их можно было включить в URL-адрес data :.

В JavaScript есть две функции соответственно для декодирования и кодирования строк Base64:

  • btoa () : создает строку ASCII в кодировке Base64 из «строки» двоичных данных («btoa» следует читать как «двоичный в ASCII»).
  • atob () : декодирует строку в кодировке Base64 («atob» следует читать как «ASCII в двоичную форму»).

Алгоритм, используемый atob () и btoa () , указан в RFC 4648, раздел 4.

Обратите внимание, что btoa () ожидает передачи двоичных данных и вызовет исключение, если данная строка содержит какие-либо символы, представление UTF-16 которых занимает более одного байта. Дополнительные сведения см. В документации для btoa () .

Каждая цифра Base64 представляет ровно 6 бит данных. Таким образом, три 8-битных байта входной строки / двоичного файла (3 × 8 бит = 24 бита) могут быть представлены четырьмя 6-битными цифрами Base64 (4 × 6 = 24 бита).

Это означает, что версия строки или файла в формате Base64 будет иметь размер не менее 133% от размера исходного кода (увеличение на ~ 33%).Увеличение может быть больше, если закодированные данные малы. Например, строка "a" с длиной === 1 кодируется в "YQ ==" с длиной === 4 — увеличение на 300%.

Поскольку DOMString s являются строками с 16-битной кодировкой, в большинстве браузеров вызов window.btoa в строке Unicode вызовет исключение Character Out Of Range , если символ превышает диапазон 8-битного ASCII -кодированный символ. Есть два возможных метода решения этой проблемы:

  • первый — экранировать всю строку и затем кодировать ее;
  • второй — преобразовать UTF-16 DOMString в массив символов UTF-8, а затем закодировать его.

Вот два возможных метода.

Решение №1 — экранирование строки перед ее кодированием

  function utf8_to_b64 (str) {
  вернуть window.btoa (unescape (encodeURIComponent (str)));
}

function b64_to_utf8 (str) {
  вернуть decodeURIComponent (escape (window.atob (str)));
}


utf8_to_b64 ('✓ в режиме');
b64_to_utf8 ('4pyTIMOgIGxhIG1vZGU =');  

Это решение было предложено Йоханом Сундстремом.

Другое возможное решение без использования устаревших функций unescape и escape.

  function b64EncodeUnicode (str) {
    return btoa (encodeURIComponent (str) .replace (/% ([0-9A-F] {2}) / g, function (match, p1) {
        вернуть String.fromCharCode ('0x' + p1);
    }));
}
 b64EncodeUnicode ('✓ в режиме');
  

Решение № 2 — переписывание

atob () и btoa () с использованием TypedArray s и UTF-8

Примечание: Следующий код также полезен для получения ArrayBuffer из строки Base64 и / или наоборот (см. ниже).A-Za-z0-9 \ + \ /] / g, «»), nInLen = sB64Enc.length, nOutLen = nBlocksSize? Math.ceil ((nInLen * 3 + 1 >> 2) / nBlocksSize) * nBlocksSize: nInLen * 3 + 1 >> 2, taBytes = new Uint8Array (nOutLen); for (var nMod3, nMod4, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx >> (16 >>> nMod3 & 24) & 255; } nUint24 = 0; } } вернуть taBytes; } function uint6ToB64 (nUint6) { вернуть nUint6 <26? nUint6 + 65 : nUint6 <52? nUint6 + 71 : nUint6 <62? nUint6 - 4 : nUint6 === 62? 43 год : nUint6 === 63? 47 : 65; } function base64EncArr (aBytes) { var nMod3 = 2, sB64Enc = ""; для (var nLen = aBytes.длина, nUint24 = 0, nIdx = 0; nIdx 0 && (nIdx * 4/3)% 76 === 0) {sB64Enc + = «\ r \ n»; } nUint24 | = aBytes [nIdx] << (16 >>> nMod3 & 24); if (nMod3 === 2 || aBytes.length — nIdx === 1) { sB64Enc + = String.fromCharCode (uint6ToB64 (nUint24 >>> 18 & 63), uint6ToB64 (nUint24 >>> 12 & 63), uint6ToB64 (nUint24 >>> 6 & 63), uint6ToB64 (nUint24 & 63)); nUint24 = 0; } } вернуть sB64Enc.substr (0, sB64Enc.length — 2 + nMod3) + (nMod3 === 2? »: nMod3 === 1? ‘=’: ‘==’); } function UTF8ArrToStr (aBytes) { var sView = «»; for (var nPart, nLen = aBytes.length, nIdx = 0; nIdx 251 && nPart <254 && nIdx + 5 247 && nPart <252 && nIdx + 4 239 && nPart <248 && nIdx + 3 223 && nPart <240 && nIdx + 2 191 && nPart <224 && nIdx + 1 >> 6); aBytes [nIdx ++] = 128 + (nChr & 63); } else if (nChr <0x10000) { aBytes [nIdx ++] = 224 + (nChr >>> 12); aBytes [nIdx ++] = 128 + (nChr >>> 6 и 63); aBytes [nIdx ++] = 128 + (nChr & 63); } else if (nChr <0x200000) { aBytes [nIdx ++] = 240 + (nChr >>> 18); aBytes [nIdx ++] = 128 + (nChr >>> 12 и 63); aBytes [nIdx ++] = 128 + (nChr >>> 6 и 63); aBytes [nIdx ++] = 128 + (nChr & 63); } else if (nChr <0x4000000) { aBytes [nIdx ++] = 248 + (nChr >>> 24); aBytes [nIdx ++] = 128 + (nChr >>> 18 и 63); aBytes [nIdx ++] = 128 + (nChr >>> 12 и 63); aBytes [nIdx ++] = 128 + (nChr >>> 6 и 63); aBytes [nIdx ++] = 128 + (nChr & 63); } еще { aBytes [nIdx ++] = 252 + (nChr >>> 30); aBytes [nIdx ++] = 128 + (nChr >>> 24 и 63); aBytes [nIdx ++] = 128 + (nChr >>> 18 и 63); aBytes [nIdx ++] = 128 + (nChr >>> 12 и 63); aBytes [nIdx ++] = 128 + (nChr >>> 6 и 63); aBytes [nIdx ++] = 128 + (nChr & 63); } } return aBytes; }

Тесты

 

var sMyInput = "Base 64 \ u2014 Mozilla Developer Network";

var aMyUTF8Input = strToUTF8Arr (sMyInput);

var sMyBase64 = base64EncArr (aMyUTF8Input);

оповещение (sMyBase64);

var aMyUTF8Output = base64DecToArr (sMyBase64);

var sMyOutput = UTF8ArrToStr (aMyUTF8Output);

оповещение (sMyOutput);  

Приложение: декодирование строки Base64 в Uint8Array или ArrayBuffer

Эти функции позволяют нам создавать также uint8Arrays или arrayBuffers из строк в кодировке Base64:

 
var myArray = base64DecToArr ("QmFzZSA2NCDigJQgTW96aWxsYSBEZXZlbG9wZXIgTmV0d29yaw ==");


var myBuffer = base64DecToArr ("QmFzZSA2NCDigJQgTW96aWxsYSBEZXZlbG9wZXIgTmV0d29yaw ==").буфер;

оповещение (myBuffer.byteLength);  

Примечание: Функция base64DecToArr (sBase64 [, nBlocksSize ]) возвращает uint8Array байтов. Если ваша цель — создать буфер из 16-битных / 32-битных / 64-битных необработанных данных, используйте аргумент nBlocksSize , который представляет собой количество байтов, из которых свойство uint8Array.buffer.bytesLength должно привести к несколько ( 1 или опущено для ASCII, двоичных строк или строк в кодировке UTF-8, 2 для строк UTF-16, 4 для строк UTF-32).

base64 — Кодировки данных Base16, Base32, Base64, Base85 — Документация Python 3.9.6

Исходный код: Lib / base64.py


Этот модуль предоставляет функции для кодирования двоичных данных для печати Символы ASCII и декодирование таких кодировок обратно в двоичные данные. Он предоставляет функции кодирования и декодирования для кодировок, указанных в RFC 3548 , который определяет алгоритмы Base16, Base32 и Base64, и для де-факто стандартных кодировок Ascii85 и Base85.

Кодировки RFC 3548 подходят для кодирования двоичных данных, так что они могут безопасно отправлено по электронной почте, использовано как часть URL-адресов или включено как часть HTTP POST запрос. Алгоритм кодирования отличается от uuencode программа.

Этот модуль предоставляет два интерфейса. Современный интерфейс поддерживает кодирование байтовых объектов в ASCII байтов , и декодирование байтовых объектов или строки, содержащие ASCII до байт .Оба алфавита base-64 определены в RFC 3548 (нормальный и безопасный для URL-адресов и файловой системы).

Устаревший интерфейс не поддерживает декодирование из строк, но поддерживает предоставляют функции для кодирования и декодирования файловых объектов и обратно. Он поддерживает только стандартный алфавит Base64 и добавляет новые строки каждые 76 символов согласно RFC 2045 . Обратите внимание, что если вы ищете для поддержки RFC 2045 вы, вероятно, захотите посмотреть электронное письмо пакет вместо этого.

Изменено в версии 3.3: строки Unicode, содержащие только ASCII, теперь принимаются функциями декодирования современный интерфейс.

Изменено в версии 3.4: Любые байтовые объекты теперь принимаются всеми функции кодирования и декодирования в этом модуле. Добавлена ​​поддержка Ascii85 / Base85.

Современный интерфейс обеспечивает:

base64. b64 кодировать ( s , altchars = None )

Закодировать байтовый объект s с использованием Base64 и вернуть закодированный байт .

Необязательно altchars должен быть байтовым объектом не менее длина 2 (дополнительные символы игнорируются), что указывает на альтернативный алфавит для символов + и /. Это позволяет приложению, например, генерировать строки Base64, безопасные для URL или файловой системы. По умолчанию — Нет , для который используется стандартный алфавит Base64.

base64. b64decode ( s , altchars = None , validate = False )

Декодировать байтовый объект в кодировке Base64 или строку ASCII s и вернуть декодированные байтов .

Необязательно altchars должен быть байтовым объектом или строкой ASCII не менее длины 2 (дополнительные символы игнорируются), что указывает альтернативный алфавит, используемый вместо символов + и /.

Возникает исключение binascii.Error если s неправильно заполнен.

Если подтвердит, что — это Ложь (по умолчанию), символы, которые ни в нормальном алфавите base-64 и альтернативном алфавите отбрасывается до проверки заполнения.Если подтверждает, что — это Истина , эти неалфавитные символы во вводе приводят к binascii. Ошибка .

base64. standard_b64 код ( s )

Кодировать байтовый объект s с использованием стандартного алфавита Base64 и вернуть закодированные байтов .

base64. standard_b64decode ( s )

Декодировать байтовый объект или строку ASCII s с использованием стандартного Base64 алфавит и вернуть декодированные байтов .

base64. urlsafe_b64encode ( s )

Кодировать байтовый объект s с помощью Алфавит, безопасный для URL и файловой системы, который заменяет - вместо + и _ вместо / в стандартный алфавит Base64, и верните закодированные байтов . Результат все еще может содержать = .

base64. urlsafe_b64decode ( s )

Декодировать байтовый объект или строку ASCII с с использованием безопасного URL-адреса и файловой системы алфавит, который заменяет - вместо + и _ вместо / в стандартном алфавите Base64 и вернуть декодированный байт .

base64. b32 код ( s )

Закодировать байтовый объект s с использованием Base32 и вернуть закодировано байтов .

base64. b32decode ( s , casefold = False , map01 = None )

Декодировать байтовый объект в кодировке Base32 или строку ASCII s и вернуть декодированные байтов .

Необязательно casefold — это флаг, указывающий допустимы ли строчные буквы в качестве входных данных. В целях безопасности по умолчанию Ложь .

RFC 3548 позволяет по желанию сопоставить цифру 0 (ноль) с буквой O (о), и для необязательного сопоставления цифры 1 (один) либо букве I (глаз) или буква L (эл). Необязательный аргумент map01 , если не Нет , указывает с какой буквой должна быть сопоставлена ​​цифра 1 (когда map01 не Нет , цифра 0 всегда сопоставляется с буквой O).В целях безопасности по умолчанию Нет , поэтому 0 и 1 не допускаются на входе.

binascii. Ошибка возникает, если s неправильно заполнены или если в Вход.

base64. b16 кодировать ( s )

Закодировать байтовый объект s с использованием Base16 и вернуть закодировано байтов .

base64. b16decode ( s , casefold = False )

Декодировать байтовый объект в кодировке Base16 или строку ASCII s и вернуть декодированные байтов .

Необязательно casefold — это флаг, определяющий, В качестве входных данных можно использовать строчные буквы. В целях безопасности по умолчанию это Ложь .

binascii. Ошибка возникает, если s неправильно заполнены или если в Вход.

base64. a85encode ( b , * , foldspaces = False , wrapcol = 0 , pad = False , adobe = False )

Закодируйте байтовый объект b с помощью Ascii85 и верните закодировано байтов .

кратных пространств — это необязательный флаг, который использует специальную короткую последовательность «y» вместо 4 последовательных пробелов (ASCII 0x20), как поддерживается «btoa».Этот эта функция не поддерживается «стандартной» кодировкой Ascii85.

wrapcol определяет, должен ли вывод иметь новую строку ( b '\ n' ) добавлены персонажи. Если это не ноль, каждая строка вывода будет самое большее это количество символов.

pad контролирует, дополняется ли ввод до кратного 4 перед кодированием. Обратите внимание, что реализация btoa всегда дополняет.

adobe контролирует, будет ли закодированная последовательность байтов обрамлена <~ и ~> , который используется реализацией Adobe.

base64. a85decode ( b , * , foldspaces = False , adobe = False , ignorechars = b '\ t \ n \ r \ v' )

Декодировать байтовый объект в кодировке Ascii85 или строку ASCII b и вернуть декодированные байтов .

кратных пространств - это флаг, который указывает, должна ли короткая последовательность «y» следует принимать как сокращение для 4 последовательных пробелов (ASCII 0x20).Эта функция не поддерживается «стандартной» кодировкой Ascii85.

Adobe определяет, находится ли входная последовательность в формате Adobe Ascii85. (т.е. обрамлен символами <~ и ~>).

ignorechars должен быть байтовым объектом или строкой ASCII содержащие символы для игнорирования со входа. Он должен содержать только символы пробела, и default содержит все пробельные символы в ASCII.

base64. b85 код ( b , pad = False )

Кодируйте байтовый объект b с использованием base85 (как используется в e.грамм. git-style binary diffs) и вернуть закодированные байтов .

Если pad истинно, ввод дополняется b '\ 0' , поэтому его длина равна кратное 4 байтам до кодирования.

base64. b85decode ( b )

Декодировать байтовый объект в кодировке base85 или строку ASCII b и вернуть декодированные байтов . Заполнение неявно удаляется, если необходимо.

Устаревший интерфейс:

base64. декодировать ( вход , выход )

Расшифруйте содержимое двоичного файла input и запишите полученный двоичный файл данные в выходной файл . вход и выход должны быть файловыми объектами. input будет считываться до тех пор, пока input.readline () не вернет пустой объект байтов.

base64. декодбайт ( с )

Декодировать байтовый объект s , который должен содержать один или несколько строки данных в кодировке base64 и возвращают декодированные байтов .

base64. кодировать ( вход , выход )

Кодировать содержимое двоичного файла input и записывать полученный base64 закодированные данные в выходной файл . вход и выход должен быть файлом объекты. input будет считываться до тех пор, пока input.read () не вернется. пустой объект байтов. encode () вставляет символ новой строки ( b '\ n' ) после каждых 76 байтов вывода, а также гарантируя, что вывод всегда заканчивается новой строкой в ​​соответствии с RFC 2045 (MIME).

base64. байтов кодирования ( с )

Кодировать байтовый объект s , который может содержать произвольный двоичный data и вернуть байтов , содержащих данные в кодировке base64, с символами новой строки ( b '\ n' ) вставляется после каждых 76 байтов вывода и гарантирует, что есть завершающий символ новой строки, согласно RFC 2045 (MIME).

Пример использования модуля:

 >>> импорт base64
>>> encoded = base64.b64encode (b'data для кодирования ')
>>> закодировано
b'ZGF0YSB0byBiZSBlbmNvZGVk '
>>> data = base64.b64decode (в кодировке)
>>> данные
b'data для кодирования '
 

См. Также

Модуль binascii

Модуль поддержки, содержащий преобразования из ASCII в двоичный и двоичный в ASCII.

RFC 1521 - MIME (многоцелевые расширения электронной почты), часть первая: механизмы определения и описания формата тел сообщений в Интернете

Раздел 5.2, «Кодирование передачи содержимого Base64», дает определение кодировка base64.

Шифрование

- Как определить, какой алгоритм кодирования используется?

Есть два распространенных заблуждения / заблуждения относительно строк в кодировке base64:

  1. Ожидание получения читаемого текста после декодирования строки в кодировке base64, наряду с предположением, что либо кодировка отличается, либо декодер base64 не работает, если результат не соответствует ожиданиям

    Данная строка кажется быть в кодировке base64, он содержит только символы из набора символов base64 и правильно дополнен, поэтому, скорее всего, это строка в кодировке base64.Кодирование Base64 используется для кодирования всех видов данных, но очень распространенный вариант использования - это кодирование двоичных данных (которые не могут быть распечатаны или отображаются только как строка «странных» символов) в более простую для обработки форму. Один из типичных вариантов использования - кодирование base64 результата шифрования или хеширования, которые создают двоичные результаты.

  2. Ожидание, что декодирование base64 является единственным шагом, необходимым для возврата оригинала (например, обычного текста, пароля и т. Д.)

    Как упоминалось выше, base64 часто используется для кодирования двоичного результата шифрования или хеширования.Сам по себе Base64 не является шифрованием и (надеюсь) никогда не используется для защиты паролей или другой конфиденциальной информации.
    «привет, мир» в кодировке base64 - это «aGVsbG8gd29ybGQ =», и каждый может декодировать его с помощью любого декодера base64.
    Процесс паролей обычно состоит в том, чтобы сначала хешировать пароль, а затем base64 кодирует двоичное хеш-значение. Для другой конфиденциальной информации выполняется шифрование, а затем кодирование base64.

Сказав это, можно сделать вывод, что данная строка, скорее всего, является хешем в кодировке base64 или зашифрованным текстом.

Типичный последующий вопрос:
Если эта двоичная чушь, которую я получаю при декодировании, является результатом шифрования или хеширования, как мне получить простой текст?

Ответ на это: вероятно, совсем не так, по крайней мере, не на основании данной информации.

Если это хэш, расшифровывать нечего, так как хеширование - это односторонний процесс. Если он зашифрован, нет информации, как его расшифровать. Для дешифрования вам необходимо знать алгоритм шифрования и ключ.

И в случае хеширования или шифрования двоичная информация обычно не содержит никаких маркеров, которые помечают данные как результат какого-либо определенного алгоритма хеширования или шифрования.
Единственная информация, которую я могу получить из строки в кодировке base64 (помимо двоичного результата), - это длина. Данная строка имеет длину 44 символа, включая один символ заполнения, то есть 43 * 6 (каждый символ base64 кодирует 6 бит) = 258 бит, поэтому, вероятно, 256 бит. Это может быть, например, хеш sha-256, но на самом деле это всего лишь возможность.

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

Оставить комментарий

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

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