1 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
根據(jù)官方文檔,一條推文不超過(guò)“140”個(gè)字符(這是一個(gè)寬泛的定義);但最近他們將其更改為280。
同一份文件說(shuō):
Twitter 使用文本的規(guī)范化形式 C (NFC) 版本計(jì)算推文的長(zhǎng)度。
所以他們首先規(guī)范化文本(我會(huì)讓你弄清楚這是如何完成的是java)。后來(lái)他們說(shuō):
Twitter 還計(jì)算文本中代碼點(diǎn)的數(shù)量,而不是 UTF-8 字節(jié)。
因此:
String test = "RT @briIIohead: the hardest pill i had to swallow this year was learning that no matter how good you could be to somebody, no matter how mu";
System.out.println(test.codePoints().count()); // 139
似乎最初的推文是 280 個(gè)“字符”,而您使用的庫(kù)并不知道這一點(diǎn),因此它只使用了之前的 140 個(gè)。因?yàn)樗隽艘恍┓謮K,所以分塊似乎也是錯(cuò)誤的,它在最后刪除了一些“部分”字節(jié)。當(dāng)您嘗試打印這些時(shí) - java 不知道那些(最后)字節(jié)的實(shí)際含義(因?yàn)橐恍╁e(cuò)誤的分塊)并且只是說(shuō)?(這是當(dāng)它根本不理解某些東西時(shí)顯示內(nèi)容的默認(rèn)策略)。
添加回答
舉報(bào)