Подсчет длины сообщений в Твиттере - PullRequest
0 голосов
/ 14 октября 2018

Это из твиттера: 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;
    }
...