Python 2 a převod kódování do Win-1250

n

Python 2 a převod kódování do Win-1250
« kdy: 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?
« Poslední změna: 05. 09. 2017, 22:07:08 od Petr Krčmář »


Ondrej

Re:Python 2 a převod kódování do Win-1250
« Odpověď #1 kdy: 05. 09. 2017, 22:56:26 »
neměla, slouží pro deklaraci souboru jako takového.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Python 2 a převod kódování do Win-1250
« Odpověď #2 kdy: 05. 09. 2017, 23:53:02 »
Nezapoměl jsi ten soubor i uložit jako windows-1250?

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:Python 2 a převod kódování do Win-1250
« Odpověď #3 kdy: 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.

LOL

Re:Python 2 a převod kódování do Win-1250
« Odpověď #4 kdy: 06. 09. 2017, 03:56:19 »
Proc by jsi chtel neco ukladat v cp-1250 ? Jinak v poradku ? Jidlo chutna ? Stromy si stebou nepovidaji ?


karel

Re:Python 2 a převod kódování do Win-1250
« Odpověď #5 kdy: 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



Re:Python 2 a převod kódování do Win-1250
« Odpověď #6 kdy: 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.)