Перечислить содержимое каталога в Windows в шестнадцатеричной или другой форме, в которой подробно показаны символы, отличные от ASCII.

Мне нужно определить нормализацию Unicode, используемую для определенных имен файлов на диске в Windows 10.

В частности, мне нужно увидеть, использует ли имя файла форму NFC или NFD для латинских символов, отличных от ASCII, таких как «ü».

В Linux я могу сделать это:

ls | xxd

Это покажет список каталогов в виде шестнадцатеричных байтов.

Как добиться чего-то подобного в Windows? Он не обязательно должен быть шестнадцатеричным — можно использовать любую другую экранированную форму, например, в строковом формате C (например, uCC88).

Это не обязательно должна быть встроенная команда. Если вы можете указать мне на другие программы, это тоже будет полезно.

1 ответ
1

Я думаю, вы делаете предположение, потому что Linux использует UTF-8, а Windows — нет.

NTFS хранит имена файлов в кодировке UTF-16 без поддержки декомпозиции или нормализации. Каждый символ состоит ровно из 16 бит.

Windows не нормализует имена файлов с помощью какой-либо формы нормализации Unicode.

  • Что ж, тогда то же самое применимо к Windows, как и к Linux, и я не делаю неправильных предположений. Разница между UTF-8 и UTF-16 заключается в другом способе упаковки кодов. Но оба все еще знают о NFC и NFD, т.е. даже в UTF-16 вы можете иметь оба представления для «ü», например. Так что мой вопрос актуален даже для Windows. Я отклоню ваш вопрос, потому что он дает неправильный ответ (т.е. предполагает, что я делаю неправильные предположения) и не отвечает на мой вопрос о показе кодов — пожалуйста, не обижайтесь на это.

    — Супер Храм
    26 минут назад

  • Кроме того, никогда не делайте предположения, что каждый символ вписывается в одну кодовую точку UTF-16. Существуют составные символы (кластеры графем), которые используют два кода UTF-16, но при визуализации отображаются как один элемент. Итак, если вы напишете редактор и ошибетесь, люди, пытающиеся отредактировать смайлик, столкнутся с проблемами.

    — Супер Храм
    22 минуты назад

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *