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