这是来自Twitter文档:https://developer.twitter.com/en/docs/basics/counting-characters.html
“ Twitter使用文本的规范化形式C(NFC)版本来计算Tweet的长度。Twitter还计算文本中代码点的数量,而不是UTF-8字节。”
它适用于西方语言。但是,当我将FormC规范化应用于以下内容时,例如:
(我用韩文发布了一个示例,但是stackoverflow认为它是垃圾邮件,因此我不允许发布)
我得到的值为160。在Twitter的Web客户端上,这是最大的可用消息-甚至添加一个字符都超过了限制。
将FormD应用于上面的值超过300。
由于Twitter的限制是140或280,所以我真的不明白Twitter如何确定该邮件的字符数。
那么-我怎么能弄清楚一条推文对于非西方语言的实际消息长度是多少?
要规范化的代码,在c#中:
private static int GetCodepointLength(string inp)
{
var info = new StringInfo(inp.Normalize(NormalizationForm.FormC));
return info.LengthInTextElements;
}