The short version
X (Twitter) doesn't count every character equally. Standard Latin letters, numbers, and most punctuation count as 1 toward the 280-character limit — but Chinese, Japanese, and Korean (CJK) characters count as 2. Write entirely in Chinese, and the effective limit is closer to 140 of your own characters, not 280. This isn't a bug or an inconsistency between platforms; it's a deliberate, documented weighting rule.
Count your CJK text
Why CJK characters are weighted differently
A single CJK character typically carries far more meaning than a single Latin letter — 世界 ("world") is two characters in Chinese but four letters plus context in English, and that density is normal across CJK writing generally, not a special case. If X counted every character equally, a 280-character limit would give Chinese, Japanese, and Korean writers dramatically more room to say things than English writers get in the same limit. The 2x weighting is meant to roughly equalize how much content actually fits, rather than treating a character as a character regardless of the writing system it comes from.
Which characters actually get the 2x weight
The weighting applies to CJK Unified Ideographs (Chinese hanzi and Japanese kanji), hiragana and katakana, Hangul syllables and Jamo (Korean), and fullwidth punctuation and forms — broadly, the character sets native to Chinese, Japanese, and Korean writing. Romanized text, numbers, and standard punctuation typed within an otherwise CJK post still count as 1 each; only the CJK characters themselves carry the extra weight, which is why a post mixing English and Chinese needs its two parts counted separately to know the real total.
What this means in practice
If a post is running short on space and it's a mix of CJK and Latin text, trimming the CJK portion saves twice as much room per character removed as trimming the Latin portion does — a detail worth knowing before assuming which part of a post to shorten. It's also why a post that looks visually short on screen can still hit the limit: character count and visual length aren't the same thing once CJK weighting is involved, and eyeballing it is unreliable compared to an actual weighted count.