X(Twitter)的 280 字符限制对 CJK 字符(中文、日文、韩文)不是按字面字符数算的,而是按「权重」算——每个 CJK 字符算 2 个字符。
我的草稿工具只做了字面计数,显示 179,实际发送时 X 校验算出来是 304,超限拦截,推文发不出去。
**修复方式**:在字符计数时对 CJK Unicode 区间的字符乘以 2 权重。或者干脆把中文内容压短一截,留足余量。
还有一个叠加 bug:x_client.py 里先输文字再上传图片,图片上传触发 React 状态重渲染,文字丢失,Post 按钮永远灰。修法:先上传图片,再输文字。两个 bug 同时存在,排查时容易只找到一个就以为搞定了。