0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

URLエンコード / Base64 / Quoted-Printable

Posted at

Web開発やメール、API連携をしていると
URLエンコード, Base64, Quoted-Printable
といった「文字列エンコード」を比較

1. URLエンコード(Percent Encoding)

概要

URLエンコードは、URLで使えない文字や意味を持つ文字を
% + 16進数で表現する仕組みです。

URLは仕様上、使える文字が限られており
日本語・スペース・記号などはそのままでは使えません。

そこで登場するのが URL エンコードです。
https://mjeld.com/url-encode-decode/

文字列の例

# 元の文字列
こんにちは 世界!
# URLエンコード後(UTF-8)
%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%20%E4%B8%96%E7%95%8C%21

特徴

  • %XX 形式(16進数)
  • UTF-8 バイト列を1バイトずつ変換
  • URL・クエリパラメータ・フォーム送信で必須
  • クエリパラメータ
?keyword=%E6%A4%9C%E7%B4%A2
  • GETリクエスト
  • フォーム送信(application/x-www-form-urlencoded)

2. Base64

概要

Base64は、
バイナリデータを英数字だけの文字列に変換する方式です。
本来は文字列ではない「画像・音声・バイナリ」を
テキストしか扱えない場所で安全に運ぶために使われます。
(たまに文字列を更にBase64にするケースもみられる)
https://mjeld.com/base64/

# 元の文字列
Hello World
# Base64エンコード後
SGVsbG8gV29ybGQ=

特徴

  • 使用文字:A-Z a-z 0-9 + /
  • = はパディング(長さ調整)
  • サイズが 約1.33倍に増える
  • URL安全ではない(+ / = が含まれる)

主な用途

  • 画像の埋め込み(Data URL)
  • APIでのバイナリ送信
  • 認証情報(Basic認証)
Authorization: Basic dXNlcjpwYXNz

3. Quoted-Printable

概要

Quoted-Printableは
メール本文(特にテキスト)向けのエンコード方式です。

ASCII文字はそのまま残し
非ASCII文字だけを =XX 形式で変換します。
https://mjeld.com/quoted-printable/

# 元の文字列
こんにちは World
# Quoted-Printable(UTF-8)
=E3=81=93=E3=82=93=E3=81=AB=E3=81=A1=E3=81=AF World

特徴

  • ASCII文字はそのまま表示できる
  • =XX 形式
  • 改行制限(76文字)あり
  • 人間が比較的読みやすい

主な用途

  • メール本文(text/plain, text/html)
  • MIMEエンコード
  • メーラー互換性確保

4. 3つの方式の比較

項目 URLエンコード Base64 Quoted-Printable
主用途 URL バイナリ転送 メール本文
表記形式 %XX 英数字 + +/= =XX
可読性
サイズ増加 小〜中
URL安全 ×
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?