<br><font size=2><tt>>Není další chyba v tom, že při čtení v textovém
režimu<br>
>dostávám na konci řádku '\r\n'? (... pod Windows, neprovádí<br>
>se unifikace konců řádků.)</tt></font>
<br><font size=2 face="sans-serif">Neviem jak je to s unifikaciou koncov
riadkov vo Windowse asi je tam ako pozostatok z DOSu '\r\n'. </font>
<br><font size=2 face="sans-serif">Aby som nemusel riesit ci je na konci
riadku '\r\n' alebo '\r' , robim vzdy chomp (t.j. line = line.rstrip()
) </font>
<br><font size=2 face="sans-serif">co v tom skripte samozrejme robis aj
ty.<br>
</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>"Petr Prikryl"
<PrikrylP@skil.cz></b> </font>
<br><font size=1 face="sans-serif">Sent by: python-bounces@py.cz</font>
<p><font size=1 face="sans-serif">15.03.2007 11:10</font>
<table border>
<tr valign=top>
<td bgcolor=white>
<div align=center><font size=1 face="sans-serif">Please respond to<br>
Konference PyCZ <python@py.cz></font></div></table>
<br>
<td width=59%>
<table width=100%>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td valign=top><font size=1 face="sans-serif">"Konference PyCZ"
<python@py.cz></font>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td valign=top>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td valign=top><font size=1 face="sans-serif">Re: [python] Q: Cteni unicode
retezcu ze souboru UTF-8 s BOM?</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=2><tt>Díky. Tušil jsem nějakou zradu. Nakonec jsem to
principiálně <br>
napsal takto.<br>
<br>
===================================================<br>
import codecs<br>
bom = unicode(codecs.BOM_UTF8, 'utf8')<br>
f = codecs.open('soubor.txt', 'r', 'utf-8')<br>
for line in f:<br>
line = line.rstrip() + u'\n'<br>
if line.startswith(bom):<br>
line = line.lstrip(bom)<br>
print line,<br>
f.close()<br>
===================================================<br>
<br>
To znamená, že z trojbajtové sekvence codecs.BOM_UTF8,<br>
která má hodnotu '\xef\xbb\xbf' vyrobím neexistující<br>
unicode znak u'\ufeff', který zahazuju, protože <br>
neexistuje :-)<br>
<br>
Není další chyba v tom, že při čtení v textovém režimu<br>
dostávám na konci řádku '\r\n'? (... pod Windows, neprovádí<br>
se unifikace konců řádků.) <br>
<br>
<br>
RMiklos napsal...@pss.sk<br>
> Je to zjavne bug - tu sa o tom docitas: http://evanjones.ca/python-utf8.html
<br>
> <br>
> Takze BOM treba odrezat rucne: <br>
> -------------------------------------------------- <br>
> # -*- coding: cp1250 -*- <br>
> import codecs <br>
> bom = unicode( codecs.BOM_UTF8, "utf8" ) <br>
> print "BOM = %s" % repr(bom) <br>
> f = codecs.open('soubor.txt', 'r', 'utf-8') <br>
> for line in f: <br>
> #print "line[0]= %s" % repr(line[0])<br>
> if line[0] == unicode( codecs.BOM_UTF8, "utf8"
): <br>
> l=line.lstrip(unicode( codecs.BOM_UTF8,
"utf8" )) <br>
> else: <br>
> l = line <br>
> print repr(l) <br>
> print l[1:] <br>
> f.close() <br>
> -------------------------------------------------- <br>
_______________________________________________<br>
Python mailing list<br>
Python@py.cz<br>
http://www.py.cz/mailman/listinfo/python<br>
</tt></font>
<br><font size=2 face="sans-serif"><br>
Mgr. Ing. Roman MIKLÓŠ <br>
Prvá stavebná sporiteľňa a.s. <br>
Bajkalská 30, P. O. Box 48 <br>
829 48 Bratislava 25 <br>
Tel.: +421/ 2 / 582 31 174 <br>
Fax: +421/ 2 / 582 31 109 <br>
</font>