
Метки статей: 100mbru, bitrix, CentOS, cms, drupal, joomla, LAMP, linux, mysql, nicru, Open-Source, Red Hat, seo, Typo3, ubuntu, авто, администрирование, алгоритмы, алкоголь, бизнес, битрикс, видео, военмех, выборы, германия, джино, домены, интересности, исследования, картинки, кино, кодинг, компьютеры, ливия, магазин, маразм, мастерхост, обработка-изображений, пейнтбол, политика, политэкономия, прикольное-видео, программирование, путешествия, работа, религия, рунет, сайтостроение, сео, сми, технологии, украина, форум, хиханьки, холивары, хостинг
|
|
Base64 в JavaScript и UTF-8 | - 15-11-19 | Теги статьи: кодинг, сайтостроение, алгоритмы
|
В JavaScript есть две функции для декодирования и кодирования строк base64:
btoa() – кодирует строку в Base64:
| var value = window .btoa( "Encode a string" ); | | console .log(value); |
atob() – декодирует:
| var value = window .atob( "RW5jb2RlIGEgc3RyaW5n" ); | | console .log(value); |
Но в большинстве браузеров они не работают с кириллицей в UTF-8 и символами эмодзи. В консоле браузера будет ошибка:
Uncaught DOMException: Failed to execute "btoa" on "Window": The string to be encoded contains characters outside of the Latin1 range.
| Исправить это можно так: |
Кодирование
| function utf8_to_b64 ( str ) { | | return window .btoa( unescape ( encodeURIComponent (str))); | | } | | | | var value = utf8_to_b64( "Текст с эмодзи 😀😃😄" ); | | console .log(value); |
Декодирование
| function b64_to_utf8 ( str ) { | | return decodeURIComponent ( escape ( window .atob(str))); | | } | | | | var value = b64_to_utf8( "0KLQtdC60YHRgiDRgSDRjdC80L7QtNC30Lgg8J+YgPCfmIPwn5iE" ); | | console .log(value); | | Версия для печати
|
|
|