Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: n 05. 09. 2017, 22:00:48

Název: Python 2 a převod kódování do Win-1250
Přispěvatel: n 05. 09. 2017, 22:00:48
mam retezc ktery je kodovany ve windows-1250

kdyz chci proti tomu retezci porovnat retezec s diakritikou ktery do zdrojoveho kodu rucne napisu, tak nemam shodu a musim  uvest  'vlastni_retezec'.decode('windows-1250')


na zacatku souboru jsem ale uvedl

Kód: [Vybrat]
#-*- coding: windows-1250 -*-
nemela by me ta deklarace zbavit povinosti to prevadet?
Název: Re:Python 2 a převod kódování do Win-1250
Přispěvatel: Ondrej 05. 09. 2017, 22:56:26
neměla, slouží pro deklaraci souboru jako takového.
Název: Re:Python 2 a převod kódování do Win-1250
Přispěvatel: BoneFlute 05. 09. 2017, 23:53:02
Nezapoměl jsi ten soubor i uložit jako windows-1250?
Název: Re:Python 2 a převod kódování do Win-1250
Přispěvatel: ByCzech 05. 09. 2017, 23:54:51
Myslím, že interaktivní příklad přímo v Pythonu to vysvětluje sám o sobě:

Kód: [Vybrat]
>>> 'Vlastní řetězec'
'Vlastn\xc3\xad \xc5\x99et\xc4\x9bzec'
>>> 'Vlastní řetězec'.decode('windows-1250')
u'Vlastn\u0102\xad \u0139\u2122et\xc4\u203azec'

neboli deklarace kódování souboru nemění vnitřní způsob uložení dat řetězce, ten je vždy stejný, proto je nutné jej pro výstup v konkrétním kódování dekódovat.
Název: Re:Python 2 a převod kódování do Win-1250
Přispěvatel: LOL 06. 09. 2017, 03:56:19
Proc by jsi chtel neco ukladat v cp-1250 ? Jinak v poradku ? Jidlo chutna ? Stromy si stebou nepovidaji ?
Název: Re:Python 2 a převod kódování do Win-1250
Přispěvatel: karel 06. 09. 2017, 06:30:13
Ahoj,
tak jde i o to jak ten retezec nacitas, pokud jsem donucen pracovat s cp-1250 tak pouzivam codecs

import codecs
text = codecs.open(filename, 'r', 'cp-1250').read()

a ted uz by ti klasicke if melo fungovat aniz bys v kodu delal brikule, navic samotny kod muzes mit klidne v utf-8


Název: Re:Python 2 a převod kódování do Win-1250
Přispěvatel: Petr Blahos 06. 09. 2017, 08:49:35
V první řadě se ujistěte, že ten soubor je opravdu uložen v cp1250. Sice to máte v hlavičce, ale editor to mohl uložit v jakémkoliv jiném kódování.

(Ale jak tu někdo naznačoval, používat dnes cp1250 není potřeba. Když už musíte mít diakritiku v kódu, tak je lepší UTF-8.)