Article View: pl.comp.lang.python
Article #27106Re: Kodowanie stringu pod windows i linux
From: Rob Wolfe
Date: Tue, 22 Dec 2009 22:04
Date: Tue, 22 Dec 2009 22:04
43 lines
2306 bytes
2306 bytes
Michal M <mierzwm@swietochlowice.org> writes:
> Witam,
>
> Mam program który string unicode koduje do innych formatów (nie
> wypisuje tego) (windows-1250 i iso-5589-2). Pod Windows wszystko
> działa, pod Linux wywala błąd na txt.encode("windows-1250","replace")
> (i iso pewnie też):
>
> File "/usr/local/lib/python2.6/encodings/cp1250.py", line 12, in
> encode
> return codecs.charmap_encode(input,errors,encoding_table)
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position
> 3: ordinal not in range(128)
>
> To samo ze shella pythona (puszczony w utf-8)
> "ĄĆ".encode("windows-1250")
>
>
> Pomocy!
Kodowanie zależy od ustawień lokalizacji w systemie.
Na Windzie pewnie miałeś ustawione 'cp1250' albo 'iso-8859-2',
a pod Linuksem zapewne masz 'UTF-8'.
>>> import sys
>>> sys.stdin.encoding
'UTF-8'
>>> 'ĄĆ'.encode('cp1250')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/encodings/cp1250.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 0: ordinal not in range(128)
>>> 'ĄĆ'.decode('utf-8').encode('cp1250')
'\xa5\xc6'
Prawidłowo zawsze przed zakodowaniem jakiegoś tekstu musisz
go odkodować (a najlepiej mieć wszystko w unikodzie)
i *TY* programista musisz wiedzieć w jakim ten tekst jest kodowaniu,
a nie Python.
RW
Technical Details
Message-ID:
<87y6ku4qd0.fsf@smsnet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<f20bf1d1-7b95-4134-8480-402e8cf72630@a32g2000yqm.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: Rob Wolfe <rw@smsnet.pl> Newsgroups: pl.comp.lang.python Subject: Re: Kodowanie stringu pod windows i linux Date: Tue, 22 Dec 2009 23:04:59 +0100 Organization: Debian GNU/Linux site Lines: 44 Message-ID: <87y6ku4qd0.fsf@smsnet.pl> References: <f20bf1d1-7b95-4134-8480-402e8cf72630@a32g2000yqm.googlegroups.com> NNTP-Posting-Host: ip-79-175-248-34.cable.smsnet.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1261519486 868 79.175.248.34 (22 Dec 2009 22:04:46 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Tue, 22 Dec 2009 22:04:46 +0000 (UTC) Cancel-Lock: sha1:KtPRt1MTVjDniGQhzFQM2mweO1U= X-User: rw8899 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit