Unicode下付きテキスト
H2Oと入力するとH₂Oが得られます。数字やプラス・マイナス記号、a、n、xなどUnicodeに下付きの形がある文字を、どこに貼っても下付きのままの文字に変えます。大文字はそのまま残ります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- H2O
- 結果
- H₂O
- 長さ
- 3
- 元の長さ
- 3
- 対応付け結果
- 1
Unicode下付き文字は、文字列そのものの中でベースラインより下に置かれます。そのため HTML や markdown、フォント、リッチテキストの操作が取り除かれる場所でも、化学式・添字・脚注風ラベルが残ります。下付きジェネレータは、通常の数字と、Unicodeが実際に下付き形として定めるラテン文字を、それらの下げられたコードポイントへ対応づけ、それ以外はそのまま残します。H2O は H₂O になり、an のようなラベルは ₐₙ になります。書き手はキャプション、商品タイトル、学術メモ、チャット、ワークシートにこれらのグリフを貼り付けます。スタイルがスタイルシートではなく文字そのものに乗って運ばれるからです。この機能は入力の各 Unicode スカラー値をたどり、数字の 0 から 9、対応する文字 a, e, h, i, j, k, l, m, n, o, p, r, s, t, u, v, x、およびプラス・マイナス・等号・括弧を置き換え、変換されなかった文字を重複なく報告します。
Unicode下付きが数字・文字・演算子を対応づける仕組み
Unicode下付きは、主に Superscripts and Subscripts ブロックに置かれた固定のコードポイント割り当てであり、ワープロが適用して後から捨てるベースラインのずらしではありません。数字は U+2080 から U+2089 に対応し、0 は ₀、1 は ₁、2 は ₂、9 は ₉ になります。
文書化されたラテン小文字の一部には公式の下付き形があり、a, e, h, i, j, k, l, m, n, o, p, r, s, t, u, v, x は ₐ ₑ ₕ ᵢ ⱼ ₖ ₗ ₘ ₙ ₒ ₚ ᵣ ₛ ₜ ᵤ ᵥ ₓ へ写ります。
プラス・マイナス・等号・括弧は ₊ ₋ ₌ ₍ ₎ になるので、n+1 のような断片は下げられた字母から出ずに ₙ₊₁ になれます。変換器は文字列の各 Unicode スカラー値をたどり、表にある平文の文字を対応する下付きコードポイントへ置き換え、それ以外はそのまま残します。
標準の下付き形を持たない文字 — b, c, d, f, g, q, w, y, z や、実質すべてのラテン大文字 — は捏造も近似も削除もされません。通過し、呼び出し側がカバレッジを監査できるよう unmapped に一度ずつ現れます。
これらのグリフの一部はよく使う ASCII 範囲の外にあるため、実装は UTF-16 単位ではなくコードポイント単位で反復し、絵文字が二つに割れないようにします。上付き、数学ボールド、イタリック、フラクトゥール、小型大文字、HTML や CSS の vertical-align の工夫は別の検索意図・別のランディングです。
実務で Unicode 下付きが現れる場面
化学の授業や実験ノートでは、先がリッチテキストを残さないときにコピーできる下付きが今も必要です。二酸化炭素は CO₂、水は H₂O、ブドウ糖は C₆H₁₂O₆ になります。数字だけが写り、大文字の元素記号はフルサイズのまま残るからです。
それはそれらの式が期待する組版の慣習そのものです。数学者とプログラマは数列・テンソル添字・ループカウンタを下げた文字と数字でラベルし、HTML なしで aₙ や xᵢ と書いて、チケットやチャットや CSV セルでもラベルが残るようにします。商品と電子商取引のチームは、プレーンテキストしか受け付けない市場向けにタイトル案を作ります。
それでも顧客フィードでは下付き数字が描画されます。面積の単位、モデル世代、成分表などが例です。サポート窓口は顧客から下付きの貼り付けを受け取り、どのグリフが本物の Unicode 下付きで、どの文字が一度も変換されなかったかを見るための文書化された字母を欲しがります。
HTML の sub タグ、CSS の vertical-align、Unicode 上付き、数学ボールドやフラクトゥール、点字翻訳、小型大文字が必要なら、別の検索意図・別のランディングとして扱い、Unicode が実際に下付き形として定める数字と文字のためのこの下付きページに詰め込まないでください。
活用例
プレーンテキストの化学式
H2O、CO2、C6H12O6 を H₂O、CO₂、C₆H₁₂O₆ にし、元素記号は大きく、個数だけベースラインの下へ下げます。
数学の添字と数列ラベル
HTML の sub タグを取り除くキャプション、チケット、メモ向けに、aₙ、xᵢ、n+1 を ₐₙ、ₓᵢ、ₙ₊₁ として符号化します。
よくある質問
どの文字が Unicode 下付きになりますか?
数字 0–9、Unicode が下付き形として定めるラテン文字(a, e, h, i, j, k, l, m, n, o, p, r, s, t, u, v, x)、演算子 + - = ( ) です。それ以外は通過し unmapped に載ります。
H2O の H と O が大きく残るのはなぜですか?
Unicode はラテン大文字の下付きを定めていません。大文字の元素記号は通過し、数字(と対応する小文字)だけが変換されます。化学式のよくある見た目です。
HTML の <sub> や CSS の vertical-align と同じですか?
違います。 これはテキストそのものの中を運ばれる Unicode 下付きコードポイントを出します。HTML タグと CSS のベースラインずらしは別の仕組みで、先が取り除くことがよくあります。
b や q、w のような文字はどうなりますか?
結果の中で元の形のまま残ります。Unicode にそれらの標準下付きがないため、捏造せず unmapped に載せます。
下付きジェネレータの料金はいくらですか?
ブラウザツールは無料で端末上で動きます。無効な入力は課金されません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/subscript-generator \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"H2O"}'const res = await fetch("https://api.kit.forhosting.com/str/subscript-generator", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "H2O"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/subscript-generator",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "H2O"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/subscript-generator", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"H2O"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"H2O"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/subscript-generator", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "H2O"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.subscript_generator",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chars | 65536 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
送るものと返ってくるもの
検証の失敗は前払い残高を消費しません。古典的な確認には、H2O を H₂O にしつつ大文字の H と O を未対応として列挙すること、対応文字 a, n, x を ₐₙₓ にすること、n+1 を ₙ₊₁ にすること、C6H12O6 を C₆H₁₂O₆ にすること、数値や空の text が黙って型変換されず拒否されることの確認があります。無料のブラウザフォームで見た目をすぐに確認し、一括フィクスチャや回帰が必要なら同じ契約をスクリプトから呼んでください。下げたい式の断片、化学式、添字ラベル、キャプションを、必須の文字列フィールド text に入れて送ってください。同じフィールドには input, string, value, content, message, data, s といった別名も受け付けるので、スクリプトや表計算は列名を変えずに既存のペイロード形を再利用できます。成功時は元の text をエコーし、変換後の文字列を result、その Unicode スカラー長を length、入力のスカラー長を original_length、表に当たった文字数を mapped、通過した一意の文字を unmapped_count と unmapped、ログ用の固定タグを method の to_subscript として返します。text が欠ける、null、空文字、数値、オブジェクト、配列、真偽値、文書化された上限を超える文字列は invalid_input で失敗し、問題を名指す英語のメッセージになります。成功した API 呼び出しの料金は公開ベースの $0.002 毎件であり、同じ純関数がブラウザプレビューと Worker の両方を動かすので、環境間でフィクスチャがずれません。
実務で Unicode 下付きが現れる場面
この機能は純粋な parse エンジンなので、API 料金は成功 1 件あたり公開ベースの $0.002 であり、検証の失敗は残高を消費しません。
連携の活用例
コンテンツパイプライン向けの決定的フィクスチャ
予約投稿ツールと CI 確認が常に同じ Unicode 字母を使うよう、golden の下付き文字列を生成します。