Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 18, 2012 15:06:57

pal201
От:
Зарегистрирован: 2010-01-05
Сообщения: 83
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись файла из джанго. decoding Unicode is not supported

Пытаюсь записать файл таким образом :

 	
command='Channel: 1: %s \nMaxRetries: 0 \nRetryTime: 60 \nWaitTime: 30 \nSet: text=%s \nContext: 2 \nExtension: 2 \nPriority: 1 \n'%(number,message)
path='/var/spool/asterisk/for_copy/'

if os.path.exists(path):
f=open(path+'dial.call','w')
f.write(str(command))
f.close()
Получаю такую ошибку:
'ascii' codec can't encode characters in position 105-111: ordinal not in range(128)
Как правильно записать такой текст в файл?
Спасибо.



Офлайн

#2 Апрель 18, 2012 17:13:34

chet
От:
Зарегистрирован: 2012-01-30
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись файла из джанго. decoding Unicode is not supported

Попробуйте в начале кода вставить:

# -*- coding: cp1251 -*-



Офлайн

#3 Апрель 18, 2012 17:41:40

beelze
Зарегистрирован: 2012-04-11
Сообщения: 104
Репутация: +  3  -
Профиль   Отправить e-mail  

Запись файла из джанго. decoding Unicode is not supported

ошибка при str(command) возникает? можно и без str() записывать, если isinstance(command, types.StringTypes). можно таки unicode(str) делать как вариант

Офлайн

#4 Апрель 18, 2012 19:36:08

pal201
От:
Зарегистрирован: 2010-01-05
Сообщения: 83
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись файла из джанго. decoding Unicode is not supported

beelze
ошибка при str(command) возникает? можно и без str() записывать, если isinstance(command, types.StringTypes). можно таки unicode(str) делать как вариант
Дело в том, что встречаются кириллические символы в command. Как их привести к общему типу и записать например в кодировке utf-8?



Офлайн

#5 Апрель 18, 2012 21:00:24

beelze
Зарегистрирован: 2012-04-11
Сообщения: 104
Репутация: +  3  -
Профиль   Отправить e-mail  

Запись файла из джанго. decoding Unicode is not supported

Вопрос о5 же в кодировке этих самых кириллических символов

Офлайн

#6 Апрель 18, 2012 21:06:40

pal201
От:
Зарегистрирован: 2010-01-05
Сообщения: 83
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись файла из джанго. decoding Unicode is not supported

beelze
Вопрос о5 же в кодировке этих самых кириллических символов
Все написано в utf-8. В каждом файле стоит coding utf-8 и из формы django приходит все в utf-8



Офлайн

#7 Апрель 18, 2012 21:34:37

beelze
Зарегистрирован: 2012-04-11
Сообщения: 104
Репутация: +  3  -
Профиль   Отправить e-mail  

Запись файла из джанго. decoding Unicode is not supported

возможно, Вам стоит поглядеть модуль codecs — Codec registry and base classes

Офлайн

#8 Апрель 19, 2012 09:08:23

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Запись файла из джанго. decoding Unicode is not supported

> из формы django приходит все в utf-8
раз ошибка возникает, то скорее из формы приходит unicode

Попробуйте так:

open(path+'dial.call','w').write(command.encode('utf8'))

см. тут про кодировки

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version