🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #27106

Re: Kodowanie stringu pod windows i linux

#27106
From: Rob Wolfe
Date: Tue, 22 Dec 2009 22:04
43 lines
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-mail
References: <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