В чем преимущество использования кодировки Base64?

В чем преимущество использования кодирования Base64?

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

Я слышал, что кодировка может быть до 30% больше, чем оригинал (по крайней мере, для изображений).

8 ответов

Решение

Первоначально некоторые протоколы допускали только 7-битные, а иногда только 6-битные данные.

Base64 позволяет кодировать 8-битные данные в 6-битные для передачи по этим типам ссылок.

Электронная почта является примером этого.

Основной вариант использования кодировки base64 - это когда вы хотите хранить или передавать данные с ограниченным набором символов; т.е. когда вы не можете передать произвольное значение в каждом байте.

<img alt="Embedded Image" 
  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />

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

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

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

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

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

Конвертировать BLOB- данные в строку и обратно...

Я использую его для передачи файлов, которые, как правило, обрабатываются почтовыми программами, потому что они выглядят как текстовые файлы (например, стенограммы HL7 для воспроизведения).

Будет ли оно использоваться, зависит от того, для чего вы его используете.

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

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

Другие вопросы по тегам