文字カウンターの数が違う理由

文字制限は数え方まで確認する必要があります。家族の絵文字は1つに見えても複数のコードポイントとUTF-16単位から成ります。見える文字、JavaScriptの長さ、UTF-8バイトを比較します。

入力と結果

Intl.SegmenterUTF-16UTF-8 (bytes)
Hello world111111
é (U+00E9)112
é (U+0065 U+0301)123
👨‍👩‍👧‍👦11125
A↵B (LF)333

結果の読み方

Apps24はIntl.Segmenterを使います。空白と改行も数え、空白除外は句読点を除く処理ではありません。2種類のéは似ていてもバイト数が異なります。そのためバイト制限やJavaScriptの長さ制限では、短く見える文字列も拒否されます。

次の作業

例を1つずつ試し、A↵Bには実際の改行を入れてください。提出先の制限が文字、バイト、単語のどれかを調べ、そのルールに従いましょう。改行変換や正規化の余地も残してください。数合わせのためにアクセントを消さないでください。

ツールを使う

制限とテスト条件

例はIntl.Segmenterのある環境で自動検証しています。古いブラウザでは案内を表示してコードポイントで代替し、結合絵文字の数が変わります。単語分割は言語によって異なり、すべての編集規則と一致しません。

参考資料

Apps24は例を実装と回帰テストで確認します。ブラウザ実験は条件を明示し、すべての端末を保証するものではありません。不具合はURL、入力例、期待する結果、ブラウザを添えてお知らせください。パスワード、非公開文書、個人情報は送らないでください。