BASE64、URLエンコード、HTMLエスケープとは・・

らら
らら

はじめに

なんか。。最近、昔から使ってたのが、検索でみつからなくなったきたので・・

これも自前で。。。。

BASE64とは

電子メールなど添付ファイル(MIMEタイプ)のエンコード・デコードで使用されていた。

メールでは、バイナリーデータ(画像など)。そのまま添付ファイルなどを6bit単位で1キャラクタを表現できるようになっている。

アルファベットA-Z、a-z、0-9、と2つの記号+/の64種類の文字コードに割り当て符号化する。.3byte(24bit)につき4文字に変換される

バイナリ・データの長さが3byteの倍数でない場合は,エンコード後の文字数が4文字の倍数になるように,=が追加される

MIMEの基準では76文字ごとに改行コードが入る

当時は、メール上では7bitの文字コードしか扱えないものがあり、6bit単位に変換して、ビット落ちされないようにしていた。

昔は、1byte(8bit)で形成されていて、7bitでそのまま送信してしまうと、ビット落ちしてしまう。

ASCIIコードだけだと7Bit 英数字・記号のみのちに JIS X 0201で半角カナ追加され8bit

URLエンコード(パーセントエンコーディング)とは

URLエンコードとは、URL/URIのファイル名やクエリ文字列などの一部としては使用できない記号や文字を、

使用できる文字の特殊な組み合わせによって表記する変換規則。

表記できない文字の文字コードを16進数で表したものを、%(パーセント)に続けて表記する。

注意として、日本語など、文字コードSJIS,UTF8によってコードが異なるので注意が必要です。

HTMLエスケープ(エスケープ処理)とは

HTML表示でHTMLのタグを文字列として表示させる。

これは、ユーザーがブラウザ上などで、タグを入力を禁止させる(サニタイズ)などで使用したりします。

昔の掲示板とか。下記などのコードが投稿され、問題になった時代も・・・


<script>悪意あるコード</script>

16進数文字列とは

数字文字列の1の場合 31 0x31 0X31 \0x31 \0X31 \x31 \X31の16進数表記で表すもの・・

数値タイプだと。0x01ですが。今回はアスキー文字を。。。

変換ツール

この変換機能は、encoding.jsを使用して変換しています。

https://github.com/polygonplanet/encoding.js

エスケープは、&'`"<>のみ対象です。漢字は対応してません。半角スペースは「%20」で表示されます。

エンコード/デコードする文字列を入力して変換モード文字コードを選択してください。
変換モード:BASE64   Url Encode/Decode   HTMLエスケープ 16進数文字列
変換文字コード:UTF8   ASCII   EUCJP   SJIS   JIS   UTF16   UTF32   UNICODE  
16進表記:なし   空白   0x (小文字x)   0X (大文字X)   \0x (小文字x)   \0X (大文字X)   \x (小文字 x)   \X (大文字 X)  


さいごに

ん?最近・・こういうやつ。つづくって?!

では・・

過去のそんなやつたち

UNIXタイムスタンプ変換ツール

UNIXタイムスタンプ変換ツール
https://www.omakase.net/blog/2022/06/unixtime.html

電気料金を計算してみよう!

電気料金を計算してみよう!
https://www.omakase.net/blog/2022/06/kwh.html

関連記事