Closed ache closed 10 years ago
У вас что, локаль в системе KOI8-R?
Во FreeBSD дефолтом KOI8-R, с UTF-8 есть проблемы в некоторых местах.
Ужас какой. А что вы делаете, когда вам в консоли нужно отобразить, скажем, английский, русский и японский языки? В общем, это явно не проблемы скрипта. Неюникодная консоль в 2014 году — просто позор.
В скрипте только отдельные символы, остальное умный питон сам конвертит в системную локаль, например этот символ: print("[\u2713] DNS записи не подменяются")
Юникодную консоль сделать можно, но тогда провиснет юникодная сортировка которая просто не написана. И это всё перенастраивать в любом случае.
Простите, но я менять не буду. Вам, вероятно, нужно написать свой codec, который будет игнорировать ошибки энкода (errors='ignore')
Всё частично решилось через env LANG=ru_RU.UTF-8 python3.3 blockcheck.py | iconv -f UTF-8 -t KOI8-R вместо спецсимволов в квадратных скобках вопросики конечно
Исправлено.
Я понимаю, модно, но не у всех Linux, и экзотические UTF-8 символы в KOI8-R питон перекодировать не может, как ни старается: File "blockcheck.py", line 115, in test_dns print("[\u2713] DNS записи не подменяются") File "blockcheck.py", line 48, in print builtins.print(_args, *_kwargs) File "/usr/local/lib/python3.3/encodings/koi8_r.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u2713' in position 1: character maps to