🔄 概要
UnicodeとBase64のエンコード/デコード。Unicodeはテキストをエスケープシーケンスやコードポイントに変換し、Base64は転送・保存用にテキストをエンコードします。
📖 仕組み
Unicodeは各文字に一意のコードポイントを割り当てます。エンコードはテキストをコードポイントにマッピングし、デコードはそれを読みやすいテキストに戻します。
Base64は64種類の印字可能文字でバイナリデータを表現 — 3バイトが4文字になる — テキストのみのシステムでバイナリデータを送れます。
✨ 機能
- Unicodeエンコード: エスケープシーケンス(\uXXXX)、16進(U+XXXX)、10進コードポイント。
- Unicodeデコード: 複数のUnicode形式を認識してテキストに変換。
- Base64: テキストとBase64文字列間のエンコード/デコード。
- リアルタイム変換: 入力に合わせて更新。
- 形式オプション: Unicode出力形式を選択。
- ローカル処理: 完全にブラウザ内で実行。
- コピー: 結果をワンクリックでコピー。
💡 手順
Unicodeエンコード/デコード
- 「ソース」フィールドにテキストを入力します。
- Unicode出力形式を選択します(エスケープ/16進/10進)。
- 「エンコード →」をクリックするか、入力で自動エンコードします。
- Unicodeフィールドで結果を確認します。
- 「結果をコピー」をクリックしてコピーします。
- デコードする場合、エンコード済みテキストをUnicodeフィールドに貼り付け、「← デコード」をクリックします。
Base64エンコード/デコード
- 「ソース」フィールドにテキストを入力します。
- 「エンコード →」をクリックするか、入力で自動エンコードします。
- Base64フィールドで結果を確認します。
- 「結果をコピー」をクリックしてコピーします。
- デコードする場合、Base64をBase64フィールドに貼り付け、「← デコード」をクリックします。
📋 形式
- Unicodeエスケープ: \uXXXX、例:\u4f60\u597d → 你好。
- Unicode 16進: U+XXXX、例:U+4F60 U+597D → 你好。
- Unicode 10進: 10進コードポイント、例:20320 22909 → 你好。
- Base64: A–Z、a–z、0–9、+、/;必要に応じて = でパディング。
🎯 活用例
- JavaScriptでのUnicodeエスケープ。
- URLやJSONでの特殊文字エンコード。
- APIやデータ転送でのBase64。
- 画像やファイルのBase64。
- 文字エンコーディングのデバッグ。
- クロスプラットフォームデータエンコード。
- APIペイロードエンコード。
💻 使用例
JavaScriptでのUnicode:
// Unicode escape sequences
const text1 = '\u4f60\u597d'; // "你好"
// Get a character's code point
const codePoint = '你'.codePointAt(0); // 20320
const hex = codePoint.toString(16); // "4f60"
// Create a character from a code point
const char = String.fromCodePoint(0x4f60); // "你"
JavaScriptでのBase64:
// BASE64 encode
const text = 'Hello, 世界!';
const encoded = btoa(unescape(encodeURIComponent(text)));
// "SGVsbG8sIOS4lueVjCE="
// BASE64 decode
const decoded = decodeURIComponent(escape(atob(encoded)));
// "Hello, 世界!"
PythonでのBase64:
import base64
# BASE64 encode
text = 'Hello, 世界!'
encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# "SGVsbG8sIOS4lueVjCE="
# BASE64 decode
decoded = base64.b64decode(encoded).decode('utf-8')
# "Hello, 世界!"
⚠️ 注意事項
- 一部のUnicode文字にはサロゲートペアが必要です。
- Base64はサイズを約33%増加させます。
- JavaScriptでは、非ASCII使用時にBase64前にUTF-8エンコードが必要です。
- Base64文字列は末尾に = または == のパディングがある場合があります。
- デコード時、Base64以外の文字(スペース、改行など)は無視されます。
- すべてローカル処理。
- 非常に大きなテキストはブラウザが遅くなる場合があります。長い入力は分割してください。
❓ よくある質問
- Unicodeエンコードとデコードの違いは?
エンコードはテキストをコードポイントに変換し、デコードはコードポイントをテキストに戻します。 - Base64はURLで使えますか?
はい、ただしURL-safe Base64では + を -、/ を _ に置き換え、パディングを省略することが多いです。 - Base64が = で終わるのはなぜですか?
= は入力長が3バイトの倍数でない場合のパディングです。 - エスケープ文字は大文字・小文字どちらですか?
小文字が一般的(\u4f60)ですが、大文字(\u4F60)も動作します。このツールは小文字を使用します。 - 絵文字に対応していますか?
はい — 絵文字はUnicodeコードポイントにエンコードされます。一部はサロゲートペアが必要です。