Article View: pl.comp.lang.python
Article #27107Re: Kodowanie stringu pod windows i linux
From: Michal M
Date: Wed, 23 Dec 2009 06:57
Date: Wed, 23 Dec 2009 06:57
49 lines
3266 bytes
3266 bytes
On 22 Gru, 23:04, Rob Wolfe <r...@smsnet.pl> wrote:
> Michal M <mier...@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'.
Nie. Na Windzie też leciało spod UTF-8 bo odpalane z Eclipse.
>
> >>> 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.
Ależ ja doskonale wiem co w czym mam i tylko próbuję przekonać Pythona
aby to przekonwertował na to co chcę mieć.
Wszystkie stringi mam w unicode i konwertuje przed wysłaniem na inne
formaty (albo zostawiam w unicode).
Technical Details
Message-ID:
<d8ae278e-c815-4f5a-85e6-31ed0758fbaf@b2g2000yqi.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!b2g2000yqi.googlegroups.com!not-for-mailReferences:
<f20bf1d1-7b95-4134-8480-402e8cf72630@a32g2000yqm.googlegroups.com> <87y6ku4qd0.fsf@smsnet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!b2g2000yqi.googlegroups.com!not-for-mail From: Michal M <mmierzwa@tycowaterworks.pl> Newsgroups: pl.comp.lang.python Subject: Re: Kodowanie stringu pod windows i linux Date: Tue, 22 Dec 2009 22:57:20 -0800 (PST) Organization: http://groups.google.com Lines: 52 Message-ID: <d8ae278e-c815-4f5a-85e6-31ed0758fbaf@b2g2000yqi.googlegroups.com> References: <f20bf1d1-7b95-4134-8480-402e8cf72630@a32g2000yqm.googlegroups.com> <87y6ku4qd0.fsf@smsnet.pl> NNTP-Posting-Host: 206.18.173.3 Mime-Version: 1.0 X-Trace: posting.google.com 1261551440 26508 127.0.0.1 (23 Dec 2009 06:57:20 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Wed, 23 Dec 2009 06:57:20 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: b2g2000yqi.googlegroups.com; posting-host=206.18.173.3; posting-account=dY1QvgoAAADCWl8YwEq83L_41SxqMaon User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MS-RTC LM 8) chromeframe/4.0,gzip(gfe),gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit