Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
bialcus
Serdeczny Borsuk
Posty: 163 Rejestracja: 02 gru 2011, 16:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86_64
Post
autor: bialcus » 05 cze 2013, 19:02
Witam,
Mam problem z polskimi znakami:
Kod: Zaznacz cały
>>> errmsg = u"Nie można otworzyć pliku"
>>> print errmsg
Nie można otworzyÄ pliku
>>> errmsg = "Nie można otworzyć pliku"
>>> print errmsg
Nie można otworzyć pliku
Unikod powinien wyświetlić jednak polskie znaki prawda? Ubuntu 12.10, python v 2.7.3
dzięki i pozdrawiam
ethanak
Wygnańcy
Posty: 3054 Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:
Post
autor: ethanak » 05 cze 2013, 19:10
nie, nie powinien. do tego masz metodę encode.
bialcus
Serdeczny Borsuk
Posty: 163 Rejestracja: 02 gru 2011, 16:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86_64
Post
autor: bialcus » 05 cze 2013, 19:14
Robię to samo w terminalu i wszystkie polskie znaki są. To jest przykład z książki "Zanurkuj w Pythonie". Jest napisane że:
"Wypisując dowolny unikod, Python go zakoduje w taki sposób, aby był zgodny
z kodowaniem znaków wyjścia, a więc dany napis zostanie zawsze wypisany z
polskimi znakami."
edit: To jest wina samego IDLE, takie odnoszę wrażenie.
ethanak
Wygnańcy
Posty: 3054 Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:
Post
autor: ethanak » 05 cze 2013, 20:21
Bzdura.
bialcus
Serdeczny Borsuk
Posty: 163 Rejestracja: 02 gru 2011, 16:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86_64
Post
autor: bialcus » 05 cze 2013, 20:23
Ale co bzdura? Właśnie sprawdzałem jeszcze inne ide pythona dreampie i wszystkie polskie znaki są.
ethanak
Wygnańcy
Posty: 3054 Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:
Post
autor: ethanak » 05 cze 2013, 20:26
Nigdzie w pythonie nie ma, że jak wywalasz unicode na wyjście to automagicznie przekształci to na utf-8 (czy co tam masz).
bialcus
Serdeczny Borsuk
Posty: 163 Rejestracja: 02 gru 2011, 16:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86_64
Post
autor: bialcus » 05 cze 2013, 20:29
Dobra, tylko dlaczego TYLKO i wyłącznie w IDLE mam taki problem? Próbowałem w ustawieniach zmieniać kodowanie z marnym skutkiem.
ethanak
Wygnańcy
Posty: 3054 Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:
Post
autor: ethanak » 05 cze 2013, 20:41
A w Cythonie nie masz? Ciekawe...
bialcus
Serdeczny Borsuk
Posty: 163 Rejestracja: 02 gru 2011, 16:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86_64
Post
autor: bialcus » 05 cze 2013, 20:44
Czy ja pisałem o innych interpretacjach pythona? Nie. Chodzi tylko po powłokę.
ethanak
Wygnańcy
Posty: 3054 Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:
Post
autor: ethanak » 05 cze 2013, 20:47
Oj przepraszam.
Ogólnie naucz się że Python wewnętrznie wspaniale działa na unicode, ale operacje IO na unicode leżą i kwiczą. Zawsze konwertuj na string (we właściwym kodowaniu) - wtedy nie będziesz mieć problemów.
bialcus
Serdeczny Borsuk
Posty: 163 Rejestracja: 02 gru 2011, 16:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86_64
Post
autor: bialcus » 05 cze 2013, 20:50
Dzięki bardzo ethanak, jako jedyny mi w jakiś sposób pomogłeś. Nawet polskie forum pythona prawie nic się nie odezwało.
pozdrawiam
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 6 gości