モノスペース幅で埋める
英字と全角文字が混ざった列をそろえます。東京は4桁分の幅なので、8桁に埋めるときに足す空白は6つではなく4つです。全角文字や多くの絵文字は2桁、結合文字は0桁と数えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- 東京
- 幅
- 8
- 辺
- Right
- 結果
- 東京
- 文字
- 元の長さ
- 2
- 元の表示幅
- 4
端末で列が揃うように文字列を埋める作業は、文字数の問題ではなく視覚幅の問題です。東アジアの表意文字、ハングル音節、全角ラテン文字、多くの絵文字は等幅フォントで 2 桁を占め、結合文字・異体字セレクタ・ゼロ幅接合子は桁を占めません。JavaScript の length による埋めでは、ラテンと日本語・中国語・韓国語が混ざるセルがずれます。本ツールは East Asian Width 流の表示桁を測り、目標の桁数に達するまで 1 桁の埋め文字を左・右・両側へ挿入します。
視覚的な桁幅の測り方
一般的な等幅端末では、ASCII の文字・数字・句読点はそれぞれ 1 桁です。その直感は、East Asian Width が Wide または Fullwidth の文字が入った瞬間に崩れます。CJK 統合漢字、ハングル音節、全角数字(ゼロから九までの表意形)、全角ラテン区画はいずれも 2 桁です。
カテゴリ Mn または Me の結合文字、書式文字、ハングル字母の中声・終声、異体字セレクタ、ゼロ幅接合子は 0 桁で、直前の書記素に付きます。国旗絵文字になる地域指示子の対は 2 桁のひと塊として扱い、ゼロ幅接合子でつながった絵文字も独立した絵を積み上げず幅 2 のひと塊のままです。
ギリシャ文字など幅が曖昧な文字は POSIX および西洋の慣例に従い 1 桁とし、東アジアロケール以外の多くの Linux および macOS 端末と一致します。タブや改行を含む制御文字は拒否します。タブ幅は文字列の性質ではなく、本ツールは表全体ではなくセル 1 つを埋めるからです。
アルゴリズムは Unicode の符号位置をたどり、UTF-16 のサロゲート対は使いません。Basic Multilingual Plane の外にある絵文字 1 つは 2 文字ではなく 1 文字です。結果は控えめで wcwidth 流の計測と同じ桁数になり、日本語の氏名とラテンの SKU が同じ右端を共有する前に必要な値です。
送る内容と返ってくる内容
空文字は許可され、指定幅の純粋な埋め文字列になります。width は視覚桁の目標数で非負整数です。省略時は別名 target、columns、size、n が使えます。
side は left、right、both のいずれかで、別名は start または l、end または r、center または c です。任意の char はそれ自体の視覚幅がちょうど 1 桁の符号位置 1 つで、既定は ASCII 空白です。全角空白や絵文字の埋めは、2 桁の埋めでは奇数の残り予算を満たせないため拒否します。
text の数値と真偽値は十進または true/false の文字列へ変換し、オブジェクトと配列は拒否します。典型確認: 2 文字の日本の都市名 東京 の視覚幅は 4 なので、空白で右埋めして width 8 にすると 東京 のあとに空白 4 つです。
ASCII の四十二を 0 で左埋めして width 6 にすると 000042 になり、ラテンだけの入力では通常の pad と一致します。
視覚幅パディングが現場で必要になる場面
CLI の作者、ログ整形、等幅フォントで表を出す人は、文字列長で幅を決めた列へ日本語・中国語・韓国語の値が入った最初の瞬間にこの問題に直面します。請求番号の横に商品名があり、JavaScript では 2 文字の CJK 名が端末では 4 桁になり、価格列が右へずれます。
Markdown 表、README の状態板、感熱レシート印刷も、セルに複数の文字体系が混ざると同じ制約です。東アジア市場向けの固定幅エクスポートを出すデータパイプラインは、文字数埋めを使うと下流の銀行やメインフレームの解析が期待するレイアウトを壊します。ローカライズ QA は視覚幅埋めをオラクルにします。
検索意図がモノスペース幅への埋め、視覚幅、East Asian Width、wcwidth、端末での CJK 列揃えであるときにこのページを選んでください。ASCII 識別子の左埋めやゼロ埋めは別の問い合わせで、文字数 pad の道具の領域です。このランディングは、幅の広い文字がセルに入って初めて現れる列揃えの問題のためのものです。
活用例
端末テーブルの CJK セルを揃える
ラテンと日本語・中国語・韓国語が混ざるセルを共有の視覚幅まで右埋めし、CLI 出力の価格列と状態列を真っすぐに保ちます。
東アジア向け固定幅エクスポート欄
レガシーな固定幅ファイルが期待する列予算まで商品名と住所を空白で埋め、全角文字を 2 桁として数えます。
混在スクリプトの見出しを中央揃え
CJK や絵文字を含む短い見出しの両側を埋め、等幅のレシート行やログ見出しが視覚的に中央へ来るようにします。
よくある質問
通常の文字列パッドと何が違いますか?
通常の pad は JavaScript の文字数を数えます。本ツールは等幅の視覚桁を数えるので、東京 の幅は 2 ではなく 4 になり、ラテンと CJK が同じ行でも列が揃います。
テキストがすでに目標より広い場合はどうなりますか?
本ツールは切り詰めません。目標幅は測った視覚幅以上である必要があります。
全角空白や絵文字で埋めてもよいですか?
いいえ。 埋め文字自体が視覚幅ちょうど 1 桁でなければなりません。ASCII 空白、0、ハイフンなど狭いグリフを使ってください。
絵文字と国旗はどう数えますか?
多くの絵文字は 2 桁です。地域指示子の対(国旗)は 2 桁のひと塊です。ゼロ幅接合子の列は幅を積み上げず、ひと塊のままです。
テキストにタブや改行を含めてもよいですか?
いいえ。タブや改行などの制御文字は受け付けません。タブの幅はテキストではなく端末の設定で決まるためです。このツールは表全体ではなく、1つのセルだけを埋めます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/pad-visual-width \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"東京","width":8,"side":"right"}'const res = await fetch("https://api.kit.forhosting.com/str/pad-visual-width", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "東京",
"width": 8,
"side": "right"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/pad-visual-width",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "東京",
"width": 8,
"side": "right"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/pad-visual-width", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"東京","width":8,"side":"right"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"東京","width":8,"side":"right"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/pad-visual-width", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "東京",
"width": 8,
"side": "right"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.pad_visual_width",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
テキストがすでに目標より広い場合、データを黙って切り詰めず invalid_input で失敗します。
送る内容と返ってくる内容
必須の text、width、side と任意の char を送ってください。text は埋めるセルで、別名 input、value、data、s、message、string、content、body を受け付けます。文書化された文字上限を超える text、または文書化された最大を超える width は invalid_input になります。成功時の応答は text、width、side、char に加え、埋めた文字列の result、JavaScript 文字列長の original_length と length、桁数の original_visual_width と visual_width、pad_count、pad_left、pad_right、operation が pad_visual_width です。成功した API 呼び出しの料金は公開済みの基本額 $0.002 で、現在の視覚幅を下回る目標を含む検証失敗は課金されません。
視覚幅パディングが現場で必要になる場面
本能力は純粋な parse エンジンなので、成功した呼び出しは公開済みの基本料金 $0.002 で、モデルトークンも外向きネットワークもなく、検証失敗は残高を消費しません。
技術的な質問
視覚幅パディングの料金はいくらですか。
ブラウザの道具は無料で、お使いの端末で動きます。API 要求は成功した件あたり $0.002 の前払い KIT 残高を使い、不正な入力は課金されません。