piapia123
ja

文字幅の計算

テキスト

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

「このテキストはどれくらい長いか」には 4 つの答えがあり、しばしば数倍の差が出ます。本ツールは 4 つとも表示します。表示幅(画面上の桁数、漢字は 2)・コードポイント数(何文字か)・UTF-16 符号単位数(JavaScript の `.length`)・UTF-8 バイト数(ファイルに入るバイト数)です。 絵文字が違いをよく示します。`😀` はコードポイント 1、UTF-16 符号単位 2、UTF-8 バイト 4 です。だから「20 文字制限」がどの口径かは、4 つを示して初めて明らかになります。表示幅はサイト内の端末折り返しと同じ実装を使うため、他とずれません。 80・100 桁を超える行(コードやコミットでよくある上限)も個別に一覧にします。計算はすべてブラウザ内で完結し、通信もアップロードもありません。

機能

  • 4 つの口径を一度に表示:表示幅・コードポイント数・UTF-16 符号単位数・UTF-8 バイト数
  • 表示幅は東アジアの幅で計算。漢字は 2 桁、ASCII は 1 桁
  • 80 桁・100 桁を超える行と、その実際の幅を一覧表示
  • 文字ごとの幅の内訳を表示でき、どの文字が行を広げたか分かる
  • 端末の折り返しと同じ幅の実装を使い、分岐しない
  • コードポイント単位で、絵文字や結合文字が壊れない
  • 各値を個別にコピー可能

使い方

  1. テキストを貼り付けます(複数行可)
  2. 4 つの数値と長すぎる行の一覧がすぐに表示されます
  3. 詳しく見たいときは「文字ごとの幅」をオンにします
  4. 行末のコピーボタンで個別の値を取り出せます

よくある質問

「20 文字制限」はどの口径ですか?
相手の計算方法によります。フォームはコードポイント、データベースは UTF-16 符号単位、API や保存はバイト数のことが多いです。4 つ表示するので相手の規則と照合できます。
なぜ 1 つの絵文字に 3 つの長さがあるのですか?
コードポイントは 1(1 文字)、UTF-16 では 2 符号単位(サロゲートペア)、UTF-8 では 4 バイトです。バグではなく、数え方の口径が異なるためです。
表示幅はどう計算しますか?
東アジアの文字幅によります。漢字・かな・全角記号は 2 桁、ASCII と半角は 1 桁、絵文字も 2 桁です。サイト内の端末折り返しと同じ実装を使い、整合性を保ちます。
データは送信されますか?
いいえ。すべてブラウザのメモリ内で計算し、通信も記録もありません。オフラインでも使えます。

関連ツール