\uNNNN
экранирование не имеет смысла в байтовых строках, потому что они не определяют последовательность байтов.Кодовые точки Unicode являются концептуально абстрактными представлениями строк и не отображаются напрямую в формат сериализации (состоящий из байтов или, в принципе, любого другого вида конкретного символического представления).
Там являются четко определенные форматы сериализации для Unicode;они известны как «кодировки».Похоже, вы ищете кодировку этих символов UTF-16 с обратным порядком байтов.
aa = 'abc\u6df7\u5408def.mp3'.encode('utf-16-be')
С учетом этого, я считаю, что остальная часть вашего кода должна работать так, как ожидалось.
Unicode на диске всегда в кодировке, но вы, очевидно, должны знать кодировку, чтобы правильно его прочитать.Необязательная метка порядка байтов (BOM) иногда записывается в начало сериализованных текстовых файлов Unicode, чтобы помочь читателю обнаружить кодировку;это единственный непечатаемый символ, единственная цель которого - помочь устранить неоднозначность кодировки и, в частности, его порядок байтов (big-endian против little-endian).
Однако многие места стандартизированы в UTF-8который не требует спецификации.Само кодирование ориентировано на байты, поэтому оно не подвержено проблемам с порядком байтов.Возможно см. Также https://utf8everywhere.org/