Что такое строки в кодировке Base64 и как их сгенерировать в ruby? - PullRequest
5 голосов
/ 04 августа 2011

Документация для стороннего API, с которым я работаю:

"[O] ur API принимает только дополненные строки в кодировке Base64."

Что такое "дополненные строки в кодировке Base64" и как их сгенерировать в Ruby. Приведенный ниже код является моей первой попыткой создания данных в формате JSON, преобразованных в Base64.

  xa = Base64.encode64(a.to_json)

Ответы [ 2 ]

6 голосов
/ 04 августа 2011

Заполнение, о котором они говорят, на самом деле является частью самого Base64. Это "=" и "==" в конце. Base64 кодирует пакеты из 3 байтов в 4 кодированных символа. Так что, если ваши входные данные имеют длину n и

  • n% 3 = 1 => "==" в конце для заполнения
  • n% 3 = 2 => "=" в конце для заполнения

Вам не нужно менять код.

2 голосов
/ 04 августа 2011

По умолчанию это похоже на библиотечные площадки base64; заполнение в Base64 будет содержать символы = в конце данных.

Это можно увидеть, запустив в консоли irb следующее:

irb(main):002:0> require 'base64'
=> true
irb(main):003:0> Base64.encode64('a')
=> "YQ==\n"

Без отступов вы не могли бы быть уверены, что YQ - это все или что-то упущено.

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