Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Проблема обработки кирилицы при сохранении файла [RSS Feed]

#1 Апрель 3, 2011 14:21:53

vip57
От:
Зарегистрирован: 2011-02-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема обработки кирилицы при сохранении файла

Уже был такой пост
был совет выполнить quote

    if request.method == 'POST':
f = ProjectAttachForm(request.POST, request.FILES, instance=project_attach)
from urllib import quote
#print quote(request.FILES)
attached_file = request.FILES[u'attached_file']
attached_file.name = quote(unicode(attached_file.name).encode('utf-8'))
request.FILES[u'attached_file'] = attached_file
#print quote(request.FILES[u'attached_file']) #.encode('utf-8') #quote(unicode(request.FILES).encode('utf-8'))
if f.is_valid():
attach = f.save(commit = False)
attach.save()
return HttpResponseRedirect(reverse('project_details', args=(project_id,)))
но меня такой вариант не устраивает.
нужны нормальные имена файлов!
в windows все работало нормально, а когда перенёс на linux валится при попытке записать файл
Может в linux надо настраивать где-то питоновсукю кодировку, чтобы понимала символы > 128 ?



Офлайн

#2 Апрель 6, 2011 08:45:23

Chrizt
От: Владивосток
Зарегистрирован: 2009-07-18
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема обработки кирилицы при сохранении файла

Предположу, что:
а) можно попробовать сохранять имена в юникоде;
б) или в зависимости от платформы выставлять нужную кодировку и декодировать-кодировать имена файлов в неё;
в) не советую в частовыполняемую функцию пихать импорты

from urllib import quote
лучше убрать в заголовок файла, в глобальную видимость



Офлайн

#3 Апрель 6, 2011 19:28:20

vip57
От:
Зарегистрирован: 2011-02-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема обработки кирилицы при сохранении файла

В том и дело, что имя файла в кодировке 1251
а сохраняет в Linux в UTF8
Но ведь должна быть стандартная перекодировка, зависимая от платформы и настройка в Django?
А импорт, я уберу, пробовал просто работу функции quote.
и далее не работает с UTF8

nname=u"Иванов".encode('utf8')
name=nname.capitalize()
#name= nname[:1] + nname[1:].lower()
print name
us = User.objects.get(first_name__iexact = name)
Лыжи не едут!



Офлайн

#4 Апрель 7, 2011 06:55:37

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Проблема обработки кирилицы при сохранении файла

В Django настроек нет. Питон содержит sys.getfilesystemencoding()



Офлайн

  • Начало
  • » Django
  • » Проблема обработки кирилицы при сохранении файла[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version