Регистр — это отображение, а не переключение одного байта. CaseShift обходит кодовые точки и считает обе стороны.

Один символ может стать двумя

Например, верхний регистр может превратить ß в SS. Результат соответствует выбранному отображению платформы, но длиннее.

Нормализация не скрывается

CaseShift не объединяет и не разлагает комбинируемые знаки. Визуально похожие строки могут сохранить разные последовательности.

Проверьте локаль и целевую систему

Активная локаль интерфейса входит в контракт преобразования регистра, но инструмент не определяет язык вставленного текста. Повторите характерный пример с диакритикой, сокращением, именем, цифрой, пунктуацией и emoji. Сравните видимый результат и оба счётчика кодовых точек. Затем вставьте текст в настоящий редактор и проверьте, не применяет ли он нормализацию, автокоррекцию, умную пунктуацию, правила идентификаторов или другое преобразование уже после CaseShift.