Здравствуйте, Critical Error, Вы писали:
CE>Пытаюсь сохранить в yml файл русский текст, PyYAML сохраняет, но русские буквы преобразовываются в коды символов, что не есть гут.
# -*- coding: cp1251 -*-
from yaml import *
s = dump("Я помню чудное мгновенье...".split(), encoding='UTF-8', allow_unicode=True)
print s
Здравствуйте, Critical Error, Вы писали:
CE>Пытаюсь сохранить в yml файл русский текст, PyYAML сохраняет, но русские буквы преобразовываются в коды символов, что не есть гут.
CE>from yaml import * CE>s = dump([u'Превед', u'Медвед'], encoding=None) CE>print repr(s) CE>[/code]
CE>Результат: CE>
Здравствуйте, Critical Error, Вы писали:
CE>Пытаюсь сохранить в yml файл русский текст, PyYAML сохраняет, но русские буквы преобразовываются в коды символов, что не есть гут.
CE>Вот код: CE>
Здравствуйте, neFormal, Вы писали:
F>Здравствуйте, Critical Error, Вы писали:
CE>>Пытаюсь сохранить в yml файл русский текст, PyYAML сохраняет, но русские буквы преобразовываются в коды символов, что не есть гут.
F>
это не работает
Traceback (most recent call last):
File "<pyshell#34>", line 1, in <module>
f.write(dump(s.split(), encoding=None, allow_unicode=True).encode('cp1251'))
File "C:\Python25\lib\encodings\cp1251.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode character u'\xdf' in position 1: character maps to <undefined>
Здравствуйте, Аноним, Вы писали:
А>это не работает А>Traceback (most recent call last): А> File "<pyshell#34>", line 1, in <module> А> f.write(dump(s.split(), encoding=None, allow_unicode=True).encode('cp1251')) А> File "C:\Python25\lib\encodings\cp1251.py", line 12, in encode А> return codecs.charmap_encode(input,errors,encoding_table) А>UnicodeEncodeError: 'charmap' codec can't encode character u'\xdf' in position 1: character maps to <undefined>
Идей нет. Разве что Вы запускали из шелла, а я из файла, мб шелл во всем виноват. Полностью пример выглядит так:
# -*- coding: cp1251 -*-
from yaml import *
s = u"Я помню чудное мгновенье..."
f = open('test.yml', 'w')
f.write(dump(s.split(), encoding=None, allow_unicode=True).encode('cp1251'))
Здравствуйте, Critical Error, Вы писали:
А>>это не работает А>>UnicodeEncodeError: 'charmap' codec can't encode character u'\xdf' in position 1: character maps to <undefined>
CE>Идей нет. Разве что Вы запускали из шелла, а я из файла, мб шелл во всем виноват. Полностью пример выглядит так:
скорее различие в операционке или версии yaml-a..
у меня линух и 3.0.6, не работает..
Здравствуйте, neFormal, Вы писали:
F>скорее различие в операционке или версии yaml-a.. F>у меня линух и 3.0.6, не работает..
Может и такое... У меня так:
c:\TEMP>python
ActivePython 2.6.1.1 (ActiveState Software Inc.) based on
Python 2.6.1 (r261:67515, Dec 5 2008, 13:58:38) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import yaml
>>> yaml.__version__
'3.08'
>>>