This account is not set to public on notestock.
This account is not set to public on notestock.
This account is not set to public on notestock.
異体字の扱いでみると。
Twitterは一貫性があるけど、そもそも使う人にとって分かりにくいルールになっちゃってる。
Mastodonは使う人に取って良いルールだけど異体字が考慮されてないのが惜しい。
JavaScriptは言語なのでバイナリデータ扱いしたときや文字列の分解等必要なので、これで正しいはず。
さらに、異体字(例:葛󠄁)は普通の漢字+異体字セレクタで、異体字セレクタがサロゲートペアなので、Twitterは2文字カウント、Mastodonは2文字カウント、JavaScriptは3文字カウントだった。
用語の正しさにあまり自信がないけど、Twitterはコードポイント数([\u0000-\u10FF\u2000-\u200D\u2010-\u201F\u2032-\u2037]は0.5文字)、Mastodonは見た目の文字数、JavaScriptはUTF-16のバイト数/2ということかな。
Mastodonだと、サロゲートペア(例:🐲(U 1F432))は1文字カウント、合字(例:👨👩👦👦)も1文字カウント。
JavaScriptは、サロゲートペアは2文字カウント、合字は部品の数カウント(この例だと11文字)。
検索するとちょいちょい不正確な情報を見かけるので、情報を残しておく。
TwitterAPIで英語は0.5文字カウントで140文字までと見るとき、サロゲートペア(例:🐲(U 1F432))は1文字カウント、合字(例:👨👩👦👦)は部品の数カウント(この例だと5.5文字)。