Thread View: pl.comp.lang.python
6 messages
6 total messages
Started by klops
Thu, 23 Sep 2010 19:30
python 3.1 print i krzaki - ratunku!!!
Author: klops
Date: Thu, 23 Sep 2010 19:30
Date: Thu, 23 Sep 2010 19:30
32 lines
2126 bytes
2126 bytes
Witam
Zaczynam program w python 3.1 (przesiadka z 2.x) i od razu mam problem z
drukowaniem na konsoli. Pewnie to banał, jednak nie mogę znaleść w
google nic na ten temat (???). Dodam tylko, że chcaiłbym by program
działał tak jak w wersji 2.x czyli na Linux i Windows NT. Nie jestem
pewien, czy na konsoli Windows w ogóle można uzyskać ten znak ©, bo w
poprzedniej wersji też wypisuje krzaki... Więc mam dodatkowe pytanie,
czy linia:
sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)
To prawidlowe rozwiązanie tej kwesti?
Poniżej nie działający program i jego rezultat:
print("Copyright © Klops")
Traceback (most recent call last):
File "./xxx.py", line 30, in <module>
print("Copyright \xa9 Klops")
File "c:\program files\python 3.1\lib\encodings\cp852.py", line 19,
in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\xa9' in
position 10
: character maps to <undefined>
dzięki
klops
Re: python 3.1 print i krzaki - ratunku!!!
Author: Jordan Szubert
Date: Fri, 24 Sep 2010 03:09
Date: Fri, 24 Sep 2010 03:09
33 lines
2305 bytes
2305 bytes
Dnia 23-09-2010 o 21:30:42 klops <klops@klopsserver.pl> napisał(a):
> Witam
>
> Zaczynam program w python 3.1 (przesiadka z 2.x) i od razu mam problem z
> drukowaniem na konsoli. Pewnie to banał, jednak nie mogę znaleść w
> google nic na ten temat (???). Dodam tylko, że chcaiłbym by program
> działał tak jak w wersji 2.x czyli na Linux i Windows NT. Nie jestem
> pewien, czy na konsoli Windows w ogóle można uzyskać ten znak ©, bo w
> poprzedniej wersji też wypisuje krzaki... Więc mam dodatkowe pytanie,
> czy linia:
>
> sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)
>
> To prawidlowe rozwiązanie tej kwesti?
>
>
> Poniżej nie działający program i jego rezultat:
>
> print("Copyright © Klops")
>
> Traceback (most recent call last):
> File "./xxx.py", line 30, in <module>
> print("Copyright \xa9 Klops")
> File "c:\program files\python 3.1\lib\encodings\cp852.py", line 19,
> in encode
> return codecs.charmap_encode(input,self.errors,encoding_map)[0]
> UnicodeEncodeError: 'charmap' codec can't encode character '\xa9' in
> position 10
> : character maps to <undefined>
jak widac, konsola uzywa kodowania cp852, wiec mozesz wypisywac tylko
znaki mieszczace sie w tym kodowaniu...
Re: python 3.1 print i krzaki - ratunku!!!
Author: konryd
Date: Fri, 24 Sep 2010 10:59
Date: Fri, 24 Sep 2010 10:59
43 lines
2762 bytes
2762 bytes
On 24 Wrz, 05:09, "Jordan Szubert" <n...@podam.na.razie> wrote:
> Dnia 23-09-2010 o 21:30:42 klops <kl...@klopsserver.pl> napisał(a):
>
>
>
>
>
> > Witam
>
> > Zaczynam program w python 3.1 (przesiadka z 2.x) i od razu mam problem z
> > drukowaniem na konsoli. Pewnie to banał, jednak nie mogę znaleść w
> > google nic na ten temat (???). Dodam tylko, że chcaiłbym by program
> > działał tak jak w wersji 2.x czyli na Linux i Windows NT. Nie jestem
> > pewien, czy na konsoli Windows w ogóle można uzyskać ten znak (c), bo w
> > poprzedniej wersji też wypisuje krzaki... Więc mam dodatkowe pytanie,
> > czy linia:
>
> > sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)
>
> > To prawidlowe rozwiązanie tej kwesti?
>
> > Poniżej nie działający program i jego rezultat:
>
> > print("Copyright (c) Klops")
>
> > Traceback (most recent call last):
> > File "./xxx.py", line 30, in <module>
> > print("Copyright \xa9 Klops")
> > File "c:\program files\python 3.1\lib\encodings\cp852.py", line 19,
> > in encode
> > return codecs.charmap_encode(input,self.errors,encoding_map)[0]
> > UnicodeEncodeError: 'charmap' codec can't encode character '\xa9' in
> > position 10
> > : character maps to <undefined>
Wygląda na to, że Twój plik ze skryptem nie ma zadeklarowanego
kodowania.
Robi się to takim czymś w górze pliku (chyba w py3 też):
#encoding=utf-8
pozdrawiam,
Konrad
Re: python 3.1 print i krzaki - ratunku!!!
Author: klops
Date: Fri, 24 Sep 2010 16:45
Date: Fri, 24 Sep 2010 16:45
11 lines
1649 bytes
1649 bytes
> Wygląda na to, że Twój plik ze skryptem nie ma zadeklarowanego > kodowania. > Robi się to takim czymś w górze pliku (chyba w py3 też): > #encoding=utf-8 W sarym pythonie robiło się to linią: # -*- coding: utf-8 -*- Ale ponoć już to nie działa. Natomiast domyślnie kodowanie źródeł jest w utf-8 - to pisze na stronie nowości w python 3.
Re: python 3.1 print i krzaki - ratunku!!!
Author: klops
Date: Fri, 24 Sep 2010 16:50
Date: Fri, 24 Sep 2010 16:50
23 lines
1772 bytes
1772 bytes
> jak widac, konsola uzywa kodowania cp852, wiec mozesz wypisywac tylko
> znaki mieszczace sie w tym kodowaniu...
no dobra zrobiłem tak:
sys.stdout = codecs.getwriter('cp852')(sys.stdout.buffer)
Co daje w wyniku:
Traceback (most recent call last):
File "lc.py", line 30, in <module>
print("Copyright \xa9 Klops")
File "c:\program files\python 3.1\lib\encodings\cp852.py", line 19,
in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\xa9' in
position 10
: character maps to <undefined>
Idealnie było by, gdybym miał autodetekcję kodowania konsoli i
ustawianie tego kodowania. Jak to zrobić żeby skrypt bezdotykowo (i
prawidłowo) działał na różnych systemach operacyjnych???
Re: python 3.1 print i krzaki - ratunku!!!
Author: Jordan Szubert
Date: Sat, 25 Sep 2010 00:43
Date: Sat, 25 Sep 2010 00:43
29 lines
2203 bytes
2203 bytes
Dnia 24-09-2010 o 18:50:13 klops <klops@klopsserver.pl> napisał(a):
>
>> jak widac, konsola uzywa kodowania cp852, wiec mozesz wypisywac tylko
>> znaki mieszczace sie w tym kodowaniu...
>
> no dobra zrobiłem tak:
> sys.stdout = codecs.getwriter('cp852')(sys.stdout.buffer)
>
> Co daje w wyniku:
>
> Traceback (most recent call last):
> File "lc.py", line 30, in <module>
> print("Copyright \xa9 Klops")
> File "c:\program files\python 3.1\lib\encodings\cp852.py", line 19,
> in encode
> return codecs.charmap_encode(input,self.errors,encoding_map)[0]
> UnicodeEncodeError: 'charmap' codec can't encode character '\xa9' in
> position 10
> : character maps to <undefined>
>
>
> Idealnie było by, gdybym miał autodetekcję kodowania konsoli i
> ustawianie tego kodowania. Jak to zrobić żeby skrypt bezdotykowo (i
> prawidłowo) działał na różnych systemach operacyjnych???
AFAIK to autodetekcja jest, dziala, i wykrywa co trzeba...
i jak bys nie kombinowal, (c) nie wypiszesz na konsoli, ktora tego nie
obsluguje...
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads