Я пытаюсь назвать Python time.strftime()
функция с помощью строки формата Unicode:
u'%d\u200f/%m\u200f/%Y %H:%M:%S'
(\u200f
"Справа налево Mark" (RLM).)
Однако я получаю исключение, что символ RLM не может быть закодирован в ASCII:
UnicodeEncodeError: кодек 'ASCII' не может закодировать символьный u '\u200f' в положении 2: порядковый не в диапазоне (128)
Я попытался искать альтернативу, но не мог найти разумную. Существует ли альтернатива этой функции или способ заставить его работать с символами Unicode?
Многие функции стандартной библиотеки все еще не поддерживают Unicode так, как должны. Вы можете использовать это обходное решение:
import time
my_format = u'%d\u200f/%m\u200f/%Y %H:%M:%S'
my_time = time.localtime()
time.strftime(my_format.encode('utf-8'), my_time).decode('utf-8')
Вы можете отформатировать строку через кодировку utf-8:
time.strftime(u'%d\u200f/%m\u200f/%Y %H:%M:%S'.encode('utf-8'), t).decode('utf-8')