Используя формат Unicode для Python 'time.strftime ()'

Я пытаюсь назвать 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?

19
задан Hosam Aly 3 April 2010 в 14:35
поделиться

2 ответа

Многие функции стандартной библиотеки все еще не поддерживают 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')
27
ответ дан 30 November 2019 в 04:03
поделиться

Вы можете отформатировать строку через кодировку utf-8:

time.strftime(u'%d\u200f/%m\u200f/%Y %H:%M:%S'.encode('utf-8'), t).decode('utf-8')
4
ответ дан 30 November 2019 в 04:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: