Unicodeコードポイント変換
HiはU+0048 U+0069になり、1文字に1つのコードポイントが対応します。U+1F600のような絵文字も2つに割れず1つの値のままです。U+の一覧を貼り付ければ文字に戻せます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Hi
- 計算モード
- To codepoints
- 結果
- U+0048 U+0069
- コードポイント
- U+0048, U+0069
- 値
- 72, 105
- 数量
- 2
Unicodeはすべての文字に一意のスカラー値を割り当てており、大文字AのU+0041のような基本的なラテン文字から、5〜6桁の十六進数を必要とする絵文字や歴史的な文字まで、おなじみのU+十六進表記で書き表されます。開発者、フォント技術者、ローカライズチーム、サポートデスクは、デバッグ、文書化、ワイヤ形式のために短い文字列をコードポイントへ展開することを常に必要としており、U+トークンの一覧を元の字形に組み立て直すことも同じくらい頻繁に必要としています。この機能は一つの純粋な関数で双方向を処理します。
UnicodeスカラーがU+XXXXトークンに対応付く仕組み
Unicodeは0からU+10FFFFまでのスカラー値の空間を定義しています。その範囲のすべての整数が日常で入力する文字とは限りませんが、現代のテキストに保存する抽象的な文字はすべて、これらのスカラーの一つで識別されます。
JavaScriptの文字列はUTF-16コードユニットの列であるため、一つの絵文字や稀なCJK漢字がサロゲートペアと呼ばれる二つのユニットを占めることがあります。したがって正しい変換器は、一度に一ユニットずつのインデックス参照ではなく、コードポイント反復を使わなければなりません。
さもないと、笑顔の絵文字がU+1F600のような一つのスカラーではなく、上位と下位の二つの別々のサロゲートとして誤って報告されます。この機能はcodePointAtで文字列を走査し、必要に応じて一つまたは二つのユニットずつ進み、各スカラーをU+に続く少なくとも4桁の大文字十六進数として整形し、値が必要とする場合は5桁または6桁に拡張します。
逆方向は、貼り付け元の柔軟性を保つため、いくつかの一般的な表記を受け付けます。U+0048、u+48、0x48、0048のような裸の十六進数、Hや十進のHのようなHTML形式です。各トークンは整数に解析されてから検証されます。
U+10FFFFを超える値は拒否され、UTF-16のサロゲート範囲U+D800〜U+DFFFも拒否されます。これらのコードユニットはUnicodeスカラー値ではなく、整形式のUnicode文字列に独立した文字として現れてはならないためです。有効なスカラーはfromCodePointで通常のJavaScript文字列に組み立てられます。
実務でUnicodeコードポイント変換が登場する場面
国際化の技術者は、正規化形式を比較し、紛らわしい類似字形を洗い出し、すべての文字をコードポイントに展開して、製品名にホモグリフが隠れていないことを検証します。アクセシビリティとコンテンツのチームは、デザインツールから短い文字列を貼り付け、字形が四角や予期しない絵文字として表示される場合に、権威ある展開を必要とします。
セキュリティのレビュアーは、ユーザー名、URL、ログ行に、単純なフィルタをすり抜ける非ASCIIの制御文字や私用領域のスカラーがないかを調べます。プログラミング講座では、見えている一文字が一つのスカラーに対応する一方、UTF-8では複数バイトを使う場合があることを示してエンコーディングを教えます。
専用の変換器ランディングは、その検索意図に、Base64やUTF-8修復ツールの下に埋もれるよりも的確に応えます。サポートデスクは、奇妙な記号のスクリーンショットを受け取り、入力またはコピーされた見本から正確なコードポイントを再構成して、技術者がバグを再現できるようにします。
Base32のシークレット、URL向けのパーセントエンコーディング、8進バイトダンプ、UTF-8への文字化け修復が必要な場合は、このUnicodeコードポイント変換ページに過負荷をかけるのではなく、別の検索意図とランディングとして扱ってください。
活用例
絵文字やマルチバイト文字のデバッグ
短い文字列をU+XXXXトークンに展開してサロゲートペアを一つのスカラーとして可視化し、一覧を編集後に元のテキストへ再構築します。
ローカライズとフォント網羅のチェックリスト
製品名、見本文字列、デザインと技術の間で共有される字形網羅表のために、安定したコードポイント目録を作成します。
セキュリティとサポートのトリアージ
スクリーンショットだけに頼った推測ではなく、正確なUnicodeスカラーを列挙して、ユーザー名やチケットに潜む不可視・混同可能な文字をあぶり出します。
よくある質問
この変換器はどの表記を使いますか?
少なくとも4桁の大文字十六進数(必要に応じて増桁)による標準のUnicode U+XXXX表記です。文字への逆変換では、入力として0xHH、裸の十六進数、HTMLの&#x…;/&#…;形式も受け付けます。
無効なコードポイントがあるとどうなりますか?
サロゲート(U+D800〜U+DFFF)、U+10FFFFを超える値、不正な形式のトークンは、明確なメッセージとともに拒否されます。検証失敗は課金されません。
絵文字やサロゲートペアを正しく処理できますか?
はい。 反復は完全なUnicodeコードポイントを使うため、一つの絵文字は二つのUTF-16ユニットではなく、一つのスカラー(例:U+1F600)になります。
料金はいくらですか?
ブラウザツールは無料でローカルに動作します。無効な入力は課金されません。
文字に戻すときはどの表記を貼り付けられますか?
U+0048、u+48、0x48、0048のような16進数だけの形、HTMLのHやHが使えます。U+10FFFFを超える値やサロゲートの範囲は、誤った文字を作らないよう受け付けません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/unicode-codepoint \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi"}'const res = await fetch("https://api.kit.forhosting.com/enc/unicode-codepoint", {
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/unicode-codepoint",
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/unicode-codepoint", 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/unicode-codepoint", 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.unicode_codepoint",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
to_codepointsは完全なコードポイント認識で入力を走査するため、サロゲートペアは一つのスカラーになり、to_charsはU+、0x、裸の十六進数、HTML数値参照を解析しつつ、サロゲートとU+10FFFFを超える値を拒否します。不正なトークンは直ちにinvalid_inputで失敗するため、誤った貼り付けが間違った文字を生み出すことはありません。
UnicodeスカラーがU+XXXXトークンに対応付く仕組み
経路全体はネットワーク呼び出し、乱数シード、時計のタイムスタンプを伴わない決定的な整数と文字列の処理であるため、同一の入力は常に同一のJSONを生成します。
送信する内容と返ってくる内容
任意のseparatorは、出力時のトークンの結合方法と入力時の分割方法を制御します。既定はspaceで、密な一覧や行指向の一覧にはcomma、newline、noneが利用できます。noneモードでは、境界が曖昧にならないよう、各トークンに明示的なU+、0x、HTMLの接頭辞が必要です。成功時の応答は、mode、元のtext、result文字列、正規化されたU+トークンの配列codepoints、整数の数値配列values、スカラーのcount、使用されたseparator、formatラベル、短いstandard参照を返します。検証失敗はプリペイド残高を消費しません。必須の文字列フィールドtextと、to_codepointsまたはto_charsに設定する任意のmodeフィールドを送信してください。modeを省略した場合、to_codepointsが既定となるため、単一のペイロードでも有用な処理が行われます。to_codepointsはHiをU+0048 U+0069に変換し、対応する配列も返します。to_charsはその一覧をHiに戻します。textの欠落、未対応のmode値、文書化された上限を超える文字列、空の不正トークン、十六進でないごみ、サロゲートのコードポイント、U+10FFFFを超えるスカラーは、いずれもinvalid_inputと、問題を明示する明確な英語メッセージとともに失敗します。成功したAPI呼び出しの料金は、公開されている1件$0.002の基本額です。
実務でUnicodeコードポイント変換が登場する場面
フォントと字形のパイプラインは、書体ファミリーがカバーするスカラーを文書化し、見本シートやプルリクエストの差分で安定したU+一覧を必要とします。この機能は純粋なparseエンジンであるため、API料金は成功item1件につき公開の基本額$0.002で、検証失敗は残高を消費しません。
技術的な質問
双方向に変換できますか?
はい。modeをto_codepoints(既定)にすると文字をU+トークンに対応付け、modeをto_charsにするとコードポイントトークンを解析して文字列に戻します。