← Cloudflare R2 / r2 / reference
Совместимость Unicode
R2 построен на основе Workers и изначально поддерживает Unicode. Один из нюансов Unicode, который часто упускают из виду, это вопрос совместимость имён файлов ↗ из-за Эквивалентность Unicode ↗.
Основываясь на отзывах пользователей, мы по умолчанию применяем NFC-нормализацию имён ключей перед сохранением. Это означает, что Héllo и Héllo, например, являются одним и тем же объектом в R2, но разными объектами у других провайдеров хранилища. Хотя Héllo и Héllo могут представлять собой разные последовательности байтов символов, но отображаются одинаково.
При этом R2 сохраняет кодировку для отображения. При получении списка объектов вы увидите ту кодировку, с которой объект был загружен последний раз.
Всё же стоит учитывать некоторые различия, зависящие от платформы:
- В Windows и macOS имена файлов не чувствительны к регистру, тогда как в R2 и Linux регистр учитывается.
- Поддержка Unicode в консоли Windows может работать нестабильно. Обязательно выполните
chcp 65001перед использованием инструментов командной строки, либо используйте Cygwin, если имена объектов отображаются некорректно. - В Linux могут существовать разные файлы, эквивалентные с точки зрения Unicode, поскольку имена файлов представляют собой байтовые потоки. Эквивалентные по Unicode имена файлов в Linux будут указывать на один и тот же объект R2.
Если вам важно иметь возможность обойти эквивалентность Unicode и использовать байт-ориентированные имена ключей, обратитесь в свою команду по работе с аккаунтом Cloudflare.