How X counts characters
The counter follows X's published rules and the weights in twitter-text, the open-source library X points developers to for counting posts.
Sources: X Developer Platform, Counting characters; twitter-text configuration v3 (280 limit, 23 per link, weight 1 for code points up to U+10FF and a few punctuation ranges, 2 for the rest); X Help Center, About X Premium.
Questions about the X character limit
What is the Twitter character limit?
280 characters for a standard X account, measured with the weights above. X Premium subscribers can write longer posts of up to 25,000 characters, according to X's help page on Premium. The counter checks the 280 limit.
Why is my count different from a normal character counter?
A plain counter counts every character as 1. X counts a link as 23 whatever its length, and counts emoji and CJK characters as 2. A post with a long tracking link can fit on X even though a plain counter says it is over 280, and a post in Japanese can be over even though it looks short.
Do @mentions, hashtags and images count?
Hashtags and @mentions you type count like any other text. X says the @mentions it adds automatically at the start of a reply do not count, and attached photos or videos count as 0.
Does QueueBloom use the same count?
Yes. The QueueBloom composer and its server check use this same counting code for X, so a post that fits here fits there. QueueBloom does not post to X for you: when the post is due it emails you the copy and a link to X's own composer.