ezz > edb.programmering.* > edb.programmering.general

 #1  
22.11.2016, 09:56
Bertel Lund Hansen
Jeg er for ikke så længe siden gået over til utf8. Det har givet
nogle nye udfordringer. Det går smertefrit at lave en hjemmeside
fordi browserne også kender utf8, men ved læsning af filer bliver
der ballade. Python læser jo én byte ad gangen, så en test som:

if 'æ' in line:
print line

virker ikke. Jeg kan godt lave en workaround (omend den er
besværlig og skal rettes til til inputfilen), men der må være en
organiseret måde at gøre det på. Er der nogen der kan hjælpe?
 #2  
22.11.2016, 15:41
Anders Wegge Keller
På Tue, 22 Nov 2016 09:57:35 +0100
Bertel Lund Hansen <gadekryds> skrev:
> Jeg er for ikke så længe siden gået over til utf8. Det hargivet
> nogle nye udfordringer. Det går smertefrit at lave en hjemmeside
> fordi browserne også kender utf8, men ved læsning af filer bliver
> der ballade. Python læser jo én byte ad gangen, så en testsom:
> if 'æ' in line:
> print line
> virker ikke. Jeg kan godt lave en workaround (omend den er
> besværlig og skal rettes til til inputfilen), men der må være en
> organiseret måde at gøre det på. Er der nogen der kan hjælpe?


Når du spørger på den måde, regner jeg med at du bruger python2. Du burde
bruge python3 i stedet, men hvis du ikke har mulighed for det, så start med
Py2 unicode HOWTO:

<https://docs.python.org/2/howto/unicode.html>

Du skal præfixe dine unicode strengkonstanter med u:

if u'æ' in line:
print line
Lignende emner