Kezdőoldal » Számítástechnika » Programozás » Python karakterkódolás (utf-8)...

Python karakterkódolás (utf-8) probléma. Mit csináljak?

Figyelt kérdés

Az lenne a problémám, hogy ha a python scriptem elején megadom azt, hogy:

# coding=utf-8

Akkor az ékezetes karakterek furán néznek ki. Példa:

def menu():

print 'Menü:\n\n[S]tart\n[K]ilépés'

valasztas = (raw_input(">>>"))

if valasztas=="S":

start()

if valasztas=="K":

kilep()


És így néz ki, ha kipróbálom:

MenĂĽ:


[S]tart

[K]ilÈpÈs


Mit csináljak?


2013. okt. 24. 19:41
 1/10 anonim ***** válasza:

#!/usr/bin/python

# -*- coding: UTF-8 -*-


másrészt ne magába a script fájlba írd be az ékezeteket, hanem külső fájlból olvasd be a szövegeket egy dictionaryba, majd úgy irasd ki.

2013. okt. 24. 20:10
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
Mi íródik ki, ha a kódolást latin-1-ként, vagy latin-2-ként specifikálod?
2013. okt. 24. 20:15
Hasznos számodra ez a válasz?
 3/10 Csxeba ***** válasza:
hülyeség. ha linuxon vagy, akkor elvileg faszán kéne futni, ha winen vagy vagy nem fut szépen linuxon, akkor a terminál/parancssor kódolását kell átállítani. Ha a python shellben futtatod, akkor esetleg ott állítgass valamit a beállítások közt.
2013. okt. 24. 20:16
Hasznos számodra ez a válasz?
 4/10 Csxeba ***** válasza:
egyébként windowson használd a cp-1250 kódolást
2013. okt. 24. 20:17
Hasznos számodra ez a válasz?
 5/10 A kérdező kommentje:

#1: Nem működik, ugyanolyan karaktereket kapok.

#2: Latin-1-re, latin-2-re ezt írja ki: "Invalid encoding: 'Latin-1' Saving as UTF-8"

#3,4: Windowst használok, és a cp-1250-re is "Invalid encoding"-et ír ki.

2013. okt. 24. 20:27
 6/10 Csxeba ***** válasza:
Melyik windows ez? Akkor is ezt írja ki, ha a Python IDLE-ben futtatod?
2013. okt. 25. 11:33
Hasznos számodra ez a válasz?
 7/10 Csxeba ***** válasza:

Végső megoldásként esetleg állj át Python 3-ra, ott kijavítottak minden ilyen karakterkódolási gebulát.

Annyi a különbség a két nyelv közt, hogy Python 3-ban a print is függvény, tehát

print "Hello World!" így néz ki:

print("Hello World!")


illetve ami nekem még problémát okozott, hogy Tkinter modult ehelyett:

import Tkinter

így kell importálni:

import tkinter


De ezen kívül minden más kb ugyanaz a végeredmény tekintetében.

Ja, még ha lekéred egy szótár kulcsait: szotar.keys()

akkor valami fura adatot kapsz, amit listává kell alakítani, hogy ugyanazt kapd, mint P2-ben:

list(szotar.keys())

2013. okt. 25. 11:36
Hasznos számodra ez a válasz?
 8/10 A kérdező kommentje:
Utolsó: Köszönöm, már rájöttem, és szenvedtem egy kicsit a print-tel, amíg kifiguráztam, de végre működik!!4négy!4!
2013. okt. 25. 19:19
 9/10 anonim ***** válasza:

Szerintem nagyon jól tetted, hogy átálltál 3-asra, mert sokkal jobb, már ezért megérte elrontani a kódot! :-)


2.x-ben egyébként

print 'Menü:\n\n[S]tart\n[K]ilépés' helyett

print u'Menü:\n\n[S]tart\n[K]ilépés'

kell. Vagyis az ékezetes betűt tartalmazó szövegek elé egy u betűt kell írni. De a legjobb mindenhova, hogy ha később beleírsz, ne kelljen foglalkozni vele.

2013. okt. 25. 23:11
Hasznos számodra ez a válasz?
 10/10 A kérdező kommentje:
Rendben, köszönöm! :)
2013. okt. 27. 12:32

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!