Стабилизирован round_char_boundary — округление позиции внутри символа до границы UTF-8

30.08.2025

Стабилизирован метод str::round_char_boundary: он округляет заданную позицию внутри строки до границы символа — вниз или вверх, в зависимости от направления округления.

Зачем это нужно

Строка UTF-8 — это последовательность байт, и символ занимает от одного до четырёх байт подряд. Обрезка по байтовому индексу может разрезать символ пополам, и результатом будет не строка, а неопределённость.

Стандартная библиотека даёт безопасный способ узнать размер символа, но не даёт способа привести произвольный индекс к корректному. Именно это и делает новый метод.

Где это встречается

Работа с частично прочитанными строками: буфер пришёл по сети, из него читают известное смещение, а остаток используют как строку. Без округления до границы символа такой остаток невалиден.

Также — вычисление отображаемой длины: сколько символов помещается в первые N байт.

Оригинал

str: Stabilize round_char_boundary feature

Упоминаний: 1 · Просмотров: 4