Why most character counters give you the wrong number
They count the characters in the box. X does not. It rewrites every link, however long, into a t.co of exactly 23 characters, so a draft with three long URLs is far shorter than it looks. And it charges two characters for anything outside the Latin ranges, so emoji, Japanese, Chinese, Korean, Arabic and Cyrillic all cost double.
The result is that a naive counter is wrong in both directions at once. It will tell you a link-heavy draft is over the limit when it fits comfortably, and tell you a Japanese draft fits when X will reject it. This one applies the weights X publishes, so the number matches what you will see in the composer.
