Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 6, 2009 18:30:18

BBBug
От:
Зарегистрирован: 2009-01-06
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Кодек «utf-8» и BOM. Трудность

Используя кодек «utf-8» пытаюсь создать юникодный файл.

f = codecs.open( ‘foo.txt’, encoding=’utf-8’, mode='w')
f.write( unichr(0x85) )
f.close()

Получаю ANSI

Бандитский кодек, в противоположность «utf-16» и «utf-32» не записывает BOM в новый файл. А ещё читает BOM как первый символ при чтении данных из файла. Но нужен именно он.
Подскажите, пожалуйста, что делать?
Спасибо

Система: WinXP
Питон: 2.6.1 от 04-Dec-2008



Офлайн

#2 Янв. 7, 2009 23:28:45

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Кодек «utf-8» и BOM. Трудность

# -*- coding: UTF-8 -*-
import codecs
f = codecs.open( 'foo.txt', encoding='utf_8_sig', mode='w')
f.write( u'мама мыла раму' )
f.close()
ключево слово здесь: ‘utf_8_sig’

Подробнее см. доку: http://docs.python.org/library/codecs.html



Отредактировано (Янв. 7, 2009 23:30:03)

Офлайн

#3 Янв. 8, 2009 11:34:56

BBBug
От:
Зарегистрирован: 2009-01-06
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Кодек «utf-8» и BOM. Трудность

Красота!



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version