-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.samoylyk.n
et!weretis.net!feeder7.news.weretis.net!eternal-september.org!feeder.eternal-se
ptember.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: Piotr Chamera <p...@p...onet.pl>
Newsgroups: pl.comp.programming
Subject: Re: kolejne pytanie z pythona
Date: Wed, 15 Apr 2020 21:14:29 +0200
Organization: A noiseless patient Spider
Lines: 62
Message-ID: <r77iu7$q51$1@dont-email.me>
References: <d...@g...com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 15 Apr 2020 18:14:31 -0000 (UTC)
Injection-Info: reader02.eternal-september.org;
posting-host="177ff2419742efb0783d7787b8aca387";
logging-data="26785";
mail-complaints-to="a...@e...org";
posting-account="U2FsdGVkX1/o6bwhSp+ZVQIXZWA9xvGe"
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:68.0) Gecko/20100101
Thunderbird/68.7.0
Cancel-Lock: sha1:dkNyo/cX6D2xqO3zre/CGJ4OSl4=
In-Reply-To: <d...@g...com>
Content-Language: pl
Xref: news-archive.icm.edu.pl pl.comp.programming:214855
[ ukryj nagłówki ]W dniu 2020-04-15 o 02:58, fir pisze:
> (...)>
> jesli jest to decode to moge zapisywac wpisy na dysk i moge je czytac ze slowniek i
wyswietlac na kanal - ale tylko poki nie zamkne bota i nie wczytam tego z dysku,
wtedy przy probie odczytania wpisu i wyslania go na kanal z tego leci blad (ascii
codect cant encode...)
>
> z kolei jak to decode wywale jest
> odwrotnie, po uruchomieniu boyta moge
> wysylac zapisane za poprzednim razem wpisy na kanal ale nie moge zapisac i odczytac
nowego, tj dokladniej w pliku tez sie zapisuje ale odczytanie go ze slownika i proba
poslania na kanal dale blad (ascii codec cant decode...)
>
> o co tu chodzi? jak to naprawic?
Zwróć uwagę, że w pythonie 2.x są dwa rodzaje stringów: ośmiobitowe
(bajtowe) i unikodowe, a z jednych na drugie przechodzisz przez encode()
i decode().
Jeśli nie zachowasz dyscypliny i nie wiesz jakie kodowania masz w
poszczególnych stringach bajtowych, to dzieją się ,,cuda" o których
piszesz wyżej.
przykład:
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:40:30) [MSC v.1500
64 bit (AMD64)] on win32
>>> import sys
>>> sys.stdin.encoding # sprawdzamy jakie jest domyślne kodowanie konsoli
'cp1250'
>>> s1 = "aą" # zwykły ośmiobitowy string, kodowanie cp1250
>>> s2 = u"aą" # string unicode, automatycznie przekodowany z konsoli
na unicode
>>> s1
'a\xb9'
>>> s2
u'a\u0105'
s1 nie ,,pamięta" swojego kodowania, można go dowolnie zinterpretować
>>> s1.decode(encoding="cp1250")
u'a\u0105'
>>> s1.decode(encoding="iso8859-2")
u'a\u0161'
>>> s1.decode(encoding="cp1256")
u'a\xb9'
s2 też można ,,spaprać", jeśli się go przepuści przez niekompatybilne
kodowania bajtowe, np.:
>>> s2.encode(encoding="utf8").decode(encoding="cp1250")
u'a\xc4\u2026'
>>> print s2.encode(encoding="utf8").decode(encoding="cp1250")
aÄ...
Rozwiązanie problemu jest takie jak w innych językach:
- znać kodowania wejściowe
- dekodować wejścia do jednego wspólnego dla całej aplikacji kodowania
(najczęściej unicode, ewentualnie utf-8) i na nim pracować
- znać kodowania wyjściowe i wyjścia kodować odpowiednio do wymagań
Następne wpisy z tego wątku
- 15.04.20 21:27 Piotr Chamera
- 17.04.20 21:04 Maciej Sobczak
Najnowsze wątki z tej grupy
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-29 KSeF - 13 wątpliwości
- 2026-01-29 A ja się pochwalę
- 2026-01-29 Warszawa => Mid/Senior IT Recruiter <=
- 2026-01-29 Warszawa => Senior Java Developer <=
- 2026-01-29 Warszawa => IT Recruiter <=
- 2026-01-28 Degradacja
- 2026-01-28 Wysoki Sąd poinstruował czego unikać wyzywając Owsiaka "Równiejszego"
- 2026-01-28 Białystok => Solution Architect (Workday) - Legal Systems <=
- 2026-01-28 Białystok => Preseles Inżynier (background baz danych) <=
- 2026-01-28 Wrocław => Konsultant wdrożeniowy ERP <=
- 2026-01-28 Łódź => Microsoft Engineer <=
- 2026-01-28 Białystok => Tester manualny <=
- 2026-01-27 Tradycja ciągania posłów po sądach za wystąpienia w Sejmie będzie kontynuowana [Lepper 2]
- 2026-01-27 Pierwszy raz sprzedano więcej samochodów zeeletryfikowanych niż ice
- 2026-01-27 Elektryczny Kałasznikow




Jak kupić pierwsze mieszkanie? Eksperci podpowiadają