SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

マンガで分かるプログラミング用語辞典

「BASE64」
~マンガでプログラミング用語解説

マンガで分かるプログラミング用語辞典(118)


  • X ポスト
  • このエントリーをはてなブックマークに追加

解説

 「BASE64」は、メールでバイナリファイルを送るための方式です。現在では、メール以外でも、テキストしか処理できない様々な場所で利用されています。たとえば、HTMLファイルに画像などを埋め込む際には、BASE64形式で変換した画像を指定します。

 バイナリファイルのBASE64への変換は、以下の手順で行ないます。

データは01の連続で表されている。
01010111111100000010101000000011
↓
データを、6個ずつ(6ビットずつ)に分割する。
010101 111111 000000 101010 000000 11
↓
末尾も6個になるように0で埋める。
010101 111111 000000 101010 000000 110000
↓
変換表により文字に変換する。
V/AqAw
↓
文字を4個ずつに分割する。
V/Aq Aw
↓
末尾も4個になるように=記号で埋める。
V/Aq Aw==
↓
BASE64文字列の完成。
V/AqAw==

 変換表は、以下のようになっています。

10進 2進 文字
0 000000 A
1 000001 B
2 000010 C
3 000011 D
4 000100 E
5 000101 F
6 000110 G
7 000111 H
8 001000 I
9 001001 J
10 001010 K
11 001011 L
12 001100 M
13 001101 N
14 001110 O
15 001111 P
16 010000 Q
17 010001 R
18 010010 S
19 010011 T
20 010100 U
21 010101 V
22 010110 W
23 010111 X
24 011000 Y
25 011001 Z
26 011010 a
27 011011 b
28 011100 c
29 011101 d
30 011110 e
31 011111 f
32 100000 g
33 100001 h
34 100010 i
35 100011 j
36 100100 k
37 100101 l
38 100110 m
39 100111 n
40 101000 o
41 101001 p
42 101010 q
43 101011 r
44 101100 s
45 101101 t
46 101110 u
47 101111 v
48 110000 w
49 110001 x
50 110010 y
51 110011 z
52 110100 0
53 110101 1
54 110110 2
55 110111 3
56 111000 4
57 111001 5
58 111010 6
59 111011 7
60 111100 8
61 111101 9
62 111110 +
63 111111 /

 62、63番目の記号は、使用する環境によって、異なる場合があります。たとえばURLに含める際、+と/は特殊な意味を持つため、他の記号(たとえば_-)を使ったりします。

 またメールの添付ファイルに使う場合は、変換したあとの長い文字列の76文字ごとに、改行コードが入ります。

サンプル

 HTMLで、BASE64を利用してみます。

 ファイルはUTF-8で保存してください。検証はGoogle Chromeで行なっています。

<html>
    <head>
        <title>「BASE64」のサンプル</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURf8AAP//AGwf25wAAADiSURBVHjaYmAgAAACiIGBkYERJwBKAgQQSA0eBQwMAAGELI1sLFwMIIAQbHSboaIAAQRjYXMcWBwggBA0pmVgFkAAwSkGTOeBaYAAQqHQVIApgAAiqAAggAgqAAggggoAAoigAoAAIqgAIIBweROuACCAsAcUgs8AEEDIQY0lIBkZAAIIM1YYUWKLASCAsNmNbBoDQABhV4DEBQggXJEE5wMEEBYFqHyAACKoACCACCoACCCCCgACCF+iBysACCCCJgAEECYfzZsAAURQAUAA4dcB5AEEEMHMCxBABDM/QIABAHLxAsRB6/Q0AAAAAElFTkSuQmCC">
    </body>
</html>
出力結果
出力結果
フィードバックお待ちしております!

 ご感想、解説して欲しい用語、解説内容のアドバイスなどございましたら、FacebookTwitterなどでお気軽に編集部までお寄せください。よろしくお願いいたします。

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
マンガで分かるプログラミング用語辞典連載記事一覧

もっと読む

この記事の著者

柳井 政和(ヤナイ マサカズ)

クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10269 2017/08/08 21:33

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング