2018-01-17 21:05:57 Posting 津波注意報・警報速報 tsunamitelop@mstdn.jp
icon

This account is not set to public on notestock.

2018-01-17 21:03:05 Posting 震度速報 quaketelop@mstdn.jp
icon

This account is not set to public on notestock.

icon

異体字の扱いでみると。
Twitterは一貫性があるけど、そもそも使う人にとって分かりにくいルールになっちゃってる。
Mastodonは使う人に取って良いルールだけど異体字が考慮されてないのが惜しい。
JavaScriptは言語なのでバイナリデータ扱いしたときや文字列の分解等必要なので、これで正しいはず。

icon

さらに、異体字(例:葛󠄁)は普通の漢字+異体字セレクタで、異体字セレクタがサロゲートペアなので、Twitterは2文字カウント、Mastodonは2文字カウント、JavaScriptは3文字カウントだった。

icon

用語の正しさにあまり自信がないけど、Twitterはコードポイント数([\u0000-\u10FF\u2000-\u200D\u2010-\u201F\u2032-\u2037]は0.5文字)、Mastodonは見た目の文字数、JavaScriptはUTF-16のバイト数/2ということかな。

icon

Mastodonだと、サロゲートペア(例:🐲(U 1F432))は1文字カウント、合字(例:👨‍👩‍👦‍👦)も1文字カウント。
JavaScriptは、サロゲートペアは2文字カウント、合字は部品の数カウント(この例だと11文字)。

icon

検索するとちょいちょい不正確な情報を見かけるので、情報を残しておく。
TwitterAPIで英語は0.5文字カウントで140文字までと見るとき、サロゲートペア(例:🐲(U 1F432))は1文字カウント、合字(例:👨‍👩‍👦‍👦)は部品の数カウント(この例だと5.5文字)。