Это из твиттера: https://developer.twitter.com/en/docs/basics/counting-characters.html
"Твиттер подсчитывает длину твита, используя версию текста в форме нормализации C (NFC) ... Твиттер также подсчитывает количество кодовых точек втекст, а не байты UTF-8. "
Работает для западных языков.Но когда я применяю нормализацию FormC к следующему, например:
(я опубликовал пример на корейском языке, но stackoverflow считает его спамом и не позволяет публиковать его)
Я получаюзначение 160. В веб-клиенте Twitter это максимально доступное сообщение - добавление даже одного символа превышает ограничение.
Применение FormD к вышеприведенному дает значение более 300.
Поскольку лимит Twitter составляет 140 или 280, я действительно не понимаю, как количество символов в этом сообщении определяется Twitter.
Итак - как в мире я могу выяснить, какова реальная длина сообщения для незападных языков для твита?
Код для нормализации, в c #:
private static int GetCodepointLength(string inp)
{
var info = new StringInfo(inp.Normalize(NormalizationForm.FormC));
return info.LengthInTextElements;
}