Unicode (UTF-8) odczyt i zapis do plików w Pythonie

| | |

Mam pewien problem ze zrozumieniem czytania i pisania tekstu do pliku (Python 2.4).

# Ciąg, który ma w sobie a-ostry. ss = u "Capitxe1n" ss8 = ss.encode("utf8") repr(ss), repr(ss8) 

("u"Capitxe1n"", ""Capitxc3xa1n"")

print ss, ss8 print >> open("f1","w"), ss8 >>> file("f1").read( ) "Capitxc3xa1n " 

Więc wpisuję Capitxc3xa1n do mojego ulubionego edytora, w pliku f2.

Następnie:

>>> open("f1").read() "Capitxc3xa1n " >>> open("f2").read() "Capitxc3xa1n " >> ;> open("f1").read().decode("utf8") u"Capitxe1n " >>> open("f2").read().decode("utf8") u"Capit xc3xa1n " 

Czego tutaj nie rozumiem? Najwyraźniej brakuje mi jakiejś istotnej magii (lub zdrowego rozsądku). Co należy wpisywać w plikach tekstowych, aby uzyskać prawidłowe konwersje?

To, czego naprawdę nie potrafię tu obsadzić, to o co chodzi w reprezentacji UTF-8, jeśli tak naprawdę nie można zmusić Pythona do rozpoznaj go, gdy pochodzi z zewnątrz. Może powinienem po prostu zrzucić ciąg JSON i użyć go zamiast tego, ponieważ ma to przyjazną reprezentację! Co więcej, czy istnieje reprezentacja ASCII tego obiektu Unicode, którą Python rozpozna i zdekoduje po wejściu z pliku? Jeśli tak, w jaki sposób mogę go uzyskać?

>>> print simplejson.dumps(ss) ""Capitu00e1n"" >>> drukowanie >> file("f3","w"), simplejson.dumps(ss) >>> simplejson.load(open("f3")) u"Capitxe1n" 

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method