Unicode (UTF-8) чтение и запись в файлы в Python

| | |

У меня проблемы с пониманием чтения и записи текста в файл (Python 2.4).

# Строка, в которой есть a-acute. 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 " 

Поэтому я ввожу Capitxc3xa1n в свой любимый редактор, в файл f2.

Затем:

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

Что я здесь не понимаю? Очевидно, что я упускаю какую-то жизненно важную часть магии (или здравого смысла). Что нужно вводить в текстовые файлы, чтобы получить правильное преобразование?

Что я действительно не могу понять здесь, так это то, в чем заключается смысл представления UTF-8, если вы не можете на самом деле заставить Python узнать его, когда он приходит извне. Может быть, мне следует просто выгрузить строку в формате JSON и использовать ее вместо этого, поскольку она имеет доступное представление! Более того, существует ли ASCII-представление этого объекта Unicode, которое Python распознает и декодирует при входе из файла? Если да, то как мне его получить?

>>> print simplejson.dumps(ss) ""Capitu00e1n"" >>> печать >> файл("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