Как зарегистрировать сервисный брокер PCF как доступный из двух пространств в одной и той же организации PCF (с правами администратора org)?

Я могу воспроизвести поведение os.listdir(): os.listdir(unicode_name) возвращает недоказуемые записи в виде байтов на Python 2.7:

>>> import os
>>> os.listdir(u'.')
[u'abc', '<--\x8b-->']

Обратите внимание: второе имя является байтовой, несмотря на аргумент listdir(), являющийся Строка Unicode.

Тем не менее остается большой вопрос - как это можно решить, не прибегая к этому взлому?

blockquote>

Python 3 разрешает недоказуемые байты (используя файловую систему кодирование символов) байтов в именах файлов с помощью обработчика ошибок surrogateescape ( os.fsencode/os.fsdecode ). См. PEP-383: Non-decodable Bytes в системных символьных интерфейсах :

>>> os.listdir(u'.')
['abc', '<--\udc8b-->']

Обратите внимание: обе строки являются Unicode (Python 3). И обработчик ошибок surrogateescape использовался для второго имени. Чтобы вернуть исходные байты:

>>> os.fsencode('<--\udc8b-->')
b'<--\x8b-->'

В Python 2 используйте строки Unicode для имен файлов в Windows (Unicode API), OS X (применяется utf-8) и используйте bytestrings в Linux и других системах .

-10
задан Nathan Basanese 14 January 2019 в 23:20
поделиться