HTMLツール

無料 Uint8Array Base64/Hexコンバーター

ネイティブバイナリエンコーディングのためのUint8Array.toBase64()、.toHex()、.fromBase64()、.fromHex()コードスニペットを生成します。

ツールを読み込み中...

Uint8Array Base64/Hexコンバーターとは

Uint8Array.prototype.toBase64()は、Uint8Arrayのバイト内容をBase64エンコードされた文字列にエンコードします。Uint8Array.prototype.toHex()は小文字の16進文字列を生成します。対応するUint8Array.fromBase64(string)とUint8Array.fromHex(string)は、Base64と16進文字列を解析してUint8Arrayに戻します。これらのメソッドはBaseline 2025(Chrome 136+)の一部であり、手動のエンコードヘルパーを不要にします。これらはブラウザとサーバー間、または異なるWeb API間でバイナリデータを転送する標準的な方法です。

クイックアンサー

ネイティブのUint8Array Base64およびHexエンコーディングメソッドを使用したコードスニペットを生成します。toBase64()とtoHex()はバイナリデータをエンコードし、Uint8Array.fromBase64()とUint8Array.fromHex()は文字列をバイナリにデコードします。Chrome 136+、Edge、Firefox、Safariで利用可能。もうbtoaやcharCodeAtのループは必要ありません。

Last updated: 2026-06-02

制限事項

  • Baseline 2025をサポートしていない古いブラウザでは利用できません。広い互換性のため、メソッドがすべての対象環境に到達するまで、btoaとcharCodeAtを使用した手動エンコーディングによるフォールバックを提供してください。
  • 非常に大きなBase64または16進文字列をUint8Arrayにデコードすると、デコードされたバッファ全体がメモリに割り当てられ、メモリ不足状態を引き起こす可能性があります。非常に大規模なデータの場合は、ストリーミングデコーダーまたはチャンク処理を検討してください。
  • fromBase64()はパディング付きの標準Base64のみをサポートしています。URLセーフBase64、パディングなしのBase64、16進文字列は、ネイティブメソッドを使用する前に前処理が必要です。

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

使い方

  1. ファイルデータ、型付き配列操作、またはfetch、WebSocket、FileReaderなどのWeb APIからUint8Arrayを作成します。
  2. 配列で.toBase64()を呼び出し、JSONペイロード、data URI、またはAPIリクエストに適した標準Base64文字列を取得します。
  3. 配列で.toHex()を呼び出し、デバッグ、暗号表示、または16進エンコーディングを期待するプロトコルに有用な16進文字列を取得します。
  4. Uint8Array.fromBase64(string)またはUint8Array.fromHex(string)を使用して、エンコードされた文字列をバイナリデータにデコードします。

主な用途

  • ファイル入力からアップロードされたバイナリファイルの内容をJSON APIリクエストで送信するためにBase64としてエンコードします。
  • 開発者ツールやデバッグパネルで検査のために生のバイトデータを16進文字列として表示します。
  • WebSocketやfetch APIからのBase64エンコードされたレスポンスをUint8Arrayにデコードし、さらなるバイナリ処理を行います。

用途

使用例

JSONアップロード用にファイルをBase64エンコード

ユーザーがinput要素でファイルを選択します。ファイルをArrayBufferとして読み込み、Uint8Arrayでラップし、toBase64()を呼び出し、Base64文字列とファイル名をJSONペイロードに含めてfetchでサーバーに送信します。

16進バイトをバイナリにデコード

WebSocketがa1b2c3d4のような16進エンコードされたバイト文字列を配信します。Uint8Array.fromHex()に渡して基になるバイナリデータを取得し、画像としてレンダリングしたりWebAssemblyモジュールで処理したりできます。

よくあるミス

  • 通常の配列(Uint8Arrayではない)でtoBase64()やtoHex()を呼び出す。これらのメソッドはUint8Arrayインスタンスにのみ存在し、Arrayや他の型付き配列には存在しません。
  • fromBase64()が非標準のBase64バリアントを受け入れると思い込む。標準のパディング付きBase64を期待します。デコード前に手動での置換によりURLセーフなBase64バリアントを使用してください。
  • fromHex()に無効な16進文字列(奇数長、非16進文字)を渡す。SyntaxErrorがスローされます。デコード前に常に16進入力を検証またはサニタイズしてください。

検証

  1. Chrome 136+ DevToolsコンソールを開きます。new Uint8Array([72, 101, 108, 108, 111])でUint8Arrayを作成します。.toBase64()を呼び出し、文字列'SGVsbG8='を返すことを確認します。Uint8Array.fromBase64('SGVsbG8=')を呼び出し、出力が元の配列と一致することを確認します。
  2. 同じUint8Arrayで.toHex()を呼び出し、'48656c6c6f'を返すことを確認します。Uint8Array.fromHex('48656c6c6f')を呼び出し、デコードされた配列が元の配列と一致することを確認します。

FAQ

Uint8Array Base64/HexコンバーターのFAQ

これらのメソッドはbtoaやatobと比べてどうですか?

btoaとatobは文字列に対して動作し、バイナリデータに対しては動作しません。btoaでバイナリをエンコードするには、最初にString.fromCharCodeを介して各バイトを文字に変換してからbtoaを呼び出す必要があり、冗長でエラーが発生しやすくなります。Uint8Array.toBase64()とfromBase64()はバイト配列に直接動作し、すべてのバイト値を正しく処理し、標準のBase64出力を生成します。これらはバイナリエンコーディングタスクの推奨される代替手段です。

これらのメソッドはNode.jsで使用できますか?

Uint8Array.toBase64()、toHex()、fromBase64()、fromHex()はブラウザで利用可能なWeb APIメソッドです。Node.jsはバイナリエンコーディングにBufferを使用します(Buffer.from().toString('base64')やBuffer.from(string, 'base64'))。クロスプラットフォームコードの場合は、メソッドを機能検出するか、条件付きポリフィルを使用してください。

これらのメソッドはストリーミングや大きな配列をサポートしていますか?

これらのメソッドはメモリ内のUint8Array全体に対して動作します。非常に大きなデータセット(数百MB)の場合、単一のUint8Arrayにデコードするとメモリを大量に消費する可能性があります。ストリーミングインターフェースは提供されていません。大規模なデータの場合は、チャンク単位でインクリメンタルに処理するか、該当する場合はStreams APIを使用してください。

Base64 URLセーフエンコーディングについてはどうですか?

toBase64()は+と/の文字とパディングを含む標準のBase64を生成します。組み込みのURLセーフバリアントはありません。Base64urlエンコーディングを得るには、エンコード後に+を-に、/を_に置き換え、末尾の=文字を削除します。fromBase64()メソッドはデフォルトで標準Base64を期待し、URLセーフバリアントを直接解析しません。

関連ツール

その他のhtmlツール

こちらもお試しください

こちらもお試しください