Странни знаци след смяна на UTF-8 в Python

Работя с Python3. Анализирайки някои уебсайтове, попаднах на някои странни герои и потърсих решение. Намерих едно, но докато намеря това решение, опитах няколко неща и знам, че не мога да го нулирам. Когато използвам моя бележник Jupyter, запазването на списъка l=[1,2,3,4] във файл води '΀煝⠀ŋɋ͋ы⹥'

Може да съм го направил

chcp 65001
set PYTHONIOENCODING=utf-8

Как мога да нулирам настройките си? Или как мога да разбера какво се случва?


person Christian    schedule 12.06.2017    source източник
comment
може ли да преформулирате въпроса? много е объркващо за това, което се опитвате да направите. записва ли файла с правилно кодиране? или показва ли символите правилно на конзолата?   -  person Sajuuk    schedule 12.06.2017
comment
Бележникът на Jupyter е уеб интерфейс към ядро, работещо в родителски процес на Python. В клиентския процес на бележника stdin е канал, а stdout/stderr са ipykernel.iostream.OutStream обекти, които използват UTF-8 и нямат нищо общо с конзолата. Така че защо работите с chcp.com? Какви точно операции наложи запазването на списъка l=[1,2,3,4]?   -  person Eryk Sun    schedule 12.06.2017


Отговори (2)


Когато отваряте файл за четене или запис, винаги изрично посочвайте кодирането, което искате да използвате, напр. encoding="utf-8". Направете това и кодовата страница по подразбиране няма да има ефект върху вашия файл i/o.

person alexis    schedule 12.06.2017
comment
Нулирах chcp на 850. Това няма ефект. Посочването на encoding=utf-8 или encoding=ansii също изглежда няма ефект. Нещо друго, което мога да опитам? - person Christian; 12.06.2017
comment
Да: Направете малка програма, която само записва списъка l=[1,2,3,4] във файл, след което го чете обратно и го отпечатва. След това редактирайте въпроса си и включете кода и резултата. - person alexis; 12.06.2017

Трябва да промените кодовата си страница и знаете, че трябва да я върнете към първоначалната стойност. И така, опитайте да нулирате номера на кодовата страница до стойността по подразбиране, САЩ от:

chcp 437
person Erfankam    schedule 12.06.2017