2006-02-26, 13:18
  #1
Medlem
gumbos avatar
Skulle bli glad om någon kan förklara lite lätt för en nybörjare om hur Unicode och latin-1 fungerar, känner mig helt borta på det området.

Håller på att lära mig Python och har skrivit en liten enkel "screenscraper". Problemet är att jag får svenska tecken när jag printar ut orden ett efter ett men inte när jag lägger dem till en lista och printar.

Här är min kod:

När jag kör scriptet får jag det här:

Programmeringsspråket
Programmeringsspråket
webbapplikationsserver
['Programmeringsspr\xe5ket', 'Programmeringsspr\xe5ket', 'webbapplikationsserver']

Om jag tar fram första ordet i min lista ( print servers[0] ) så skrivs det som det ska.

Jag använder Ubuntu vilken använder sv_SE.UTF-8. Spelar det någon roll i sammanhanget eller kommer det se ut exakt likadant på vilket os som helst?
Citera
2006-02-26, 14:52
  #2
Medlem
irrblosss avatar
Vilken texteditor använder du, och vilken encoding kör den med?

Edit: eller det var kanske inget. Du hämtar data från en hemsida ser det ut som (kan inte Python), och då får du kolla vad webservern kör med för encoding och sedan eventuellt encoda om till det format du själv vill använda.
Citera
2006-02-27, 05:26
  #3
Medlem
Nikolajevitjs avatar
För det första så verkar indenteringen ha försvunnit när du postade koden, vilket är lite känsligt när det gäller python

Sen verkar det som ovanstående talar säger ha att göra med teckenkodningen av sidan och ett enkelt sätt att lösa det temporära problemet på är att omvandla din sträng till unicode, genom att sätta ett u framför den (alternativt omvandla filen till utf-8, i emacs genom Ctrl-X RET f utf-8).

alltså:
variabel = Word( u"abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRST UVWXYZÅÄÖ", min=21, max=23 )

Det bör hjälpa i detta fall men för det generella fallet så måste du antagligen använda metoderna encode/decode för att omvandla till rätt teckenkodning men det kan medföra att man först måste ta reda på vilken kodning sidan använder vilket kan vara mer eller mindre svårt.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in