UTF-32コードユニット変換
テキストを固定幅のUTF-32の値に変換します。「Hi」は00000048 00000069となり、2ユニット・8バイトです。U+1F600のような絵文字も1ユニットの0001F600のままです。16進や10進の一覧をテキストに戻すこともできます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Hi
- 計算モード
- Encode
- 出力形式
- Hex
- 結果
- 00000048 00000069
- コード単位
- 2
- バイト
- 8
UTF-32は、すべてのUnicodeスカラー値を固定幅32ビットの単一コードユニットに格納します。この一対一の対応により、可変幅のUTF-8やサロゲートペアを使うUTF-16よりも、ワイヤ形式・メモリダンプ・プロトコル例を、各文字を完全な32ビット値として見たいときに把握しやすくなります。本ツールは平文を、8桁大文字の16進または単純な10進のスペース区切りユニット一覧へ符号化し、そうした一覧を読みやすいテキストへ復号します。フィクスチャと手確認のダンプは実行間で同一のままです。
UTF-32コードユニットとは何か、一覧の書き方
UTF-32では、各Unicodeスカラー値がちょうど1つの32ビットコードユニットを占めます。文字HはU+0048であり、16進では00000048、10進では72として現れます。U+1F600のような絵文字はサロゲートペアではなく単一ユニット0001F600です。
符号化は入力を完全なコードポイント単位で走査し、UTF-16ユニットだけには依存しないため、基本多言語面外の文字も応答の合計では1エントリ・4バイトとして数えられます。既定の16進一覧はユニットごとにゼロ埋め8桁の大文字数字をスペースで区切るので、各トークンは仕様書・テスト用フィクスチャ・サポート票に貼り付けられる完全な32ビット値です。
10進形式は同じ値を非負整数として書き、基数10を好むツール向けです。変換はネットワークもモデルも使わない純粋なローカルパースのため、同じテキストは常に同じ一覧になります。
符号化・復号・整形式と不正入力
modeの既定はencodeです。平文を渡すと選択した形式の一覧が返ります。入力がすでに32ビット値のリストであるときはdecodeに切り替えます。
formatの既定はhexで、トークンを10進整数にしたいときはdecimalを指定します。復号時はスペース・カンマ・セミコロン・パイプがトークンを区切り、16進トークンは0xまたはU+接頭辞を付けてもよく、長さが8の倍数の連続16進は区切りなしでもコンパクトなダンプとして受け付けます。
各トークンは0からU+10FFFFまでの包含的範囲のUnicodeスカラーに解決する必要があります。無効なmodeやformatは変換の前に拒否されます。
実行場所と料金の仕組み
プロトコル付録向けに短い文字列を固定幅UTF-32の16進へ変換する、絵文字が4バイトの1コードユニットであることを確認する、取引先の10進一覧を読みやすいテキストへ戻すといった一度きりの確認には、無料のブラウザツールをご利用ください。サロゲートユニットや範囲外の値を含む検証失敗は課金されないため、不良ダンプの確認で前払い残高を減らしません。
リバースエンジニアリング用ノート、ワイヤ形式の一致を検証するQAハーネス、顧客がユニット一覧を貼り付けたときにヘックスエディタなしで文字列が必要なサポート手順に組み込めます。tier-Aのパース処理はレイテンシを低く保ち、デプロイごとに再測定するコンテナやモデルのコストはありません。
活用例
プロトコルとバイナリ形式の文書化
仕様・パケット図・相互運用メモ向けに、サンプル文字列の固定幅UTF-32を16進または10進の一覧として出力します。
フィクスチャとテストデータの生成
4バイト単位の件数、絵文字スカラー、復号の往復を検証するユニットテスト向けに、決定的なコードユニット一覧を生成します。
サポートとリバースエンジニアリング
顧客提供のUTF-32の16進または10進ダンプをテキストへ戻し、サロゲートや範囲外ユニットを拒否します。
よくある質問
ここではUTF-32はUTF-16とどう違いますか?
UTF-32はスカラー値ごとに1つの32ビットユニットを使います。BMP外の文字もサロゲートペアではなく単一ユニットのままです。サロゲートのコードポイントは無効で拒否されます。
サロゲートや範囲外ユニットではどうなりますか?
部分的な一覧やテキストは返されず、失敗した呼び出しは課金されません。
スペースなしの連続16進を貼れますか?
formatがhexのdecodeモードでは可能です。桁数は8の倍数である必要があります。各トークンにスペース、カンマ、0x、U+接頭辞も使えます。
UTF-32の値を16進ではなく10進で表示できますか?
はい。10進形式を選ぶと、各文字が10進の数値で書かれます。たとえば文字Hは00000048ではなく72と表示されます。テキストに戻すときも10進の一覧をそのまま受け付けます。
UTF-32の16進ダンプをテキストに戻すにはどうしますか?
デコードを選び、スペース・カンマ・セミコロン・縦線で区切った値を貼り付けます。0xやU+の接頭辞があっても構いません。00000048 00000069は「Hi」に戻ります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/utf32 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi"}'const res = await fetch("https://api.kit.forhosting.com/enc/utf32", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hi"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/utf32",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hi"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/utf32", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hi"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hi"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/utf32", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Hi"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.utf32",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
サロゲートのコードポイントおよびU+10FFFFを超える値は、静かな破損ではなく明確なinvalid_inputエラーで拒否されます。同じ決定的な純粋パース経路が、無料のブラウザフォームと、成功リクエストあたり$0.002のAPIを支えます。
UTF-32コードユニットとは何か、一覧の書き方
応答には常にmode、format、code_units、bytes(ユニット数の4倍)が含まれ、バイナリレイアウトの長さフィールドと照合できます。
符号化・復号・整形式と不正入力
サロゲート範囲U+D800〜U+DFFFの値はUTF-32では不正でinvalid_inputとなり、すでに孤立した高低サロゲートを含むJavaScript文字列を符号化する際の未対サロゲートも同様です。範囲外の数、hexモードの非16進ゴミ、分割後の空一覧は、推測せずにリクエストを直せるようフィールド固有のメッセージで直ちに失敗します。
実行場所と料金の仕組み
同じ純粋関数がAPIを支え、継続的インテグレーション向けの決定的フィクスチャ、16進と10進の両方の文書例、変換表を各サービスに埋め込まずに混在ダンプを正規化するパイプラインに使えます。APIの成功呼び出しは毎回$0.002です。応答は変換結果、解決済みのmodeとformat、code unit数とバイト数を含む決定的なJSONです。
技術的な質問
encodeモードは何を返しますか?
各文字を完全な32ビットコードユニットとして、既定の8桁大文字16進または10進でスペース区切りにした一覧と、code_unitsおよびbytes(ユニット×4)です。
APIの料金はいくらですか?
成功リクエストあたり$0.002です。ブラウザツールは無料です。不正な入力は課金されません。