%run
ning ΡΠ°ΠΉΠ»Π° python, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ # -*- coding: utf-8 -*-
ΠΈ ΡΠΎΡ
ΡΠ°Π½Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΡΠΎΡΠΌΠ°ΡΠ΅, ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΌ ΠΎΡ utf8, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ±ΠΎΡ ipython (Π²ΠΎΠ·Π²ΡΠ°Ρ Π² ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ).
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ±ΠΎΠΉ, ΡΠ°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½:
ΠΠΎΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠΈΠΉ ΡΡΠΎ, ΡΠΎΡ
ΡΠ°Π½Π΅Π½Π½ΡΠΉ Π² ISO-8859-15 Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΡΡΠ΅ΠΊΠ°:
files.zip
%run wrong_encoding.py
...
... <long trace>
...
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 78: invalid continuation byte
python3 -c "import IPython; print(IPython.sys_info())"
{'commit_hash': '5c9c918',
'commit_source': 'installation',
'default_encoding': 'UTF-8',
'ipython_path': '/usr/lib/python3.4/site-packages/IPython',
'ipython_version': '5.1.0',
'os_name': 'posix',
'platform': 'Linux-3.16.7-42-desktop-x86_64-with-SuSE-13.2-x86_64',
'sys_executable': '/usr/bin/python3',
'sys_platform': 'linux',
'sys_version': '3.4.5 (default, Jul 03 2016, 13:55:08) [GCC]'}
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» Π±ΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅.
ΠΠΎ Π² ΠΈΠ΄Π΅Π°Π»Π΅ ΡΠ΅Π°Π½Ρ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΡΠ½ ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΡΡΠ΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
Π― Π½Π°ΡΡΠΈΡΠ°Π» ΡΡΠΈΠ½Π°Π΄ΡΠ°ΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΎΠΊ - Π΄ΡΠΌΠ°Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΈΠ½Π΅ΡΡΠΈ Π²Π°ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΠ·. ;-)
ΠΡΠ»ΠΈ Π΄ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° Π½Π΅Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±ΡΠ°ΡΡΡΡ, ΡΠΎ Π²ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π», ΡΡΠΎΠ±Ρ Π²ΡΡΠ»Π΅Π΄ΠΈΡΡ Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠ°:
find . -name "*.py" -exec file {} \; | grep -v ASCII | grep -v UTF-8 | grep -v empty
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π― Π½Π°ΡΡΠΈΡΠ°Π» ΡΡΠΈΠ½Π°Π΄ΡΠ°ΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΎΠΊ - Π΄ΡΠΌΠ°Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΈΠ½Π΅ΡΡΠΈ Π²Π°ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΠ·. ;-)