Форум сайта python.su
1
Доброго времени суток.
Задача такая: пользователи на windows-ПК прикрепляют файлы через соотв. поле в форме. Django работает на RHEL5.
При попытке сохранить файл с кириллическим именем получаю
UnicodeEncodeError at /addfile/
'ascii' codec can't encode characters in position 52-60: ordinal not in range(128)
Кто-нибудь решал подобную задачу?
Офлайн
221
несколько странно, ведь Джанго получает данные формы преобразовывая их в Unicode объекты, и вы далее должны работать именно с ними,а не с обычными строками. И соответственно при сохранении файла с таким именем должно произойти корректное преобразование уникода в строку в соответствии с настройками вашей ОС, где я уверен UTF-8.
Проверяйте выше сказанное, да и не плохо бы код увидеть
Офлайн
1
JOHN_16
несколько странно, ведь Джанго получает данные формы преобразовывая их в Unicode объекты, и вы далее должны работать именно с ними,а не с обычными строками. И соответственно при сохранении файла с таким именем должно произойти корректное преобразование уникода в строку в соответствии с настройками вашей ОС, где я уверен UTF-8.Проверяйте выше сказанное, да и не плохо бы код увидеть
class Doc(models.Model): DOC_DIRECT = (('I', 'ВХ'), ('O', 'ИСХ'), ) direction = models.CharField(max_length=1, default="I", choices=DOC_DIRECT) # Входящий или исходящий reg_tag = models.CharField(max_length=30, default='', null=True, blank=True) # рег номер и дата ВЦ, дата - обязательна reg_date = models.DateField(default=date.today()) ext_reg_tag = models.CharField(max_length=30, null=True, blank=True) # рег номер и дата канцелярии, необязательны ext_reg_date = models.DateField(blank=True, null=True) file = models.FileField(upload_to='') # Прикреплённый файл
Отредактировано Andrejus (Янв. 27, 2014 08:56:05)
Офлайн