Python зависает при печати некоторых управляющих символов Unicode c1 непоследовательным образом

В целях тестирования я создал файл с байтами 0xc2 0x90, представляющий кодовую точку Unicode 0x90 в кодировке UTF-8.

Я могу этот файл без проблем, но пытаюсьстрока, записанная из нее, или соответствующий литерал, или строка, созданная другим способом...

      Python 3.8.10 (default, Mar 15 2022, 12:22:08) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('\x90')

приводит к зависанию терминала. Программа даже не реагирует на Ctrl-C.

То же самое происходит и с несколькими другими отдельными персонажами, закономерности которых я не могу различить.

Еще более странный:

      >>> for i in range(150): print(chr(i))

Это удается, даже если один из напечатанных символов будет соответствующим символом 0x90. Если я закончу диапазон навместо этого он снова зависнет, но с перерывами.

Я не могу найти ни рифмы, ни причины такого поведения. Я понимаю, что пытаюсь отобразить управляющие символы и что это потенциально может привести к тому, что вывод терминала будет выглядеть странно, курсор будет прыгать и т. д.; но я не ожидаю жесткого зависания терминала. И опять же, результат отличается от того, что я получаю при попытке отобразить символы другими способами (например,).

Что происходит и что мне следует попробовать дальше, чтобы это исправить? Я использую встроенную установку Python 3.8.10 в Linux Mint (20.3, Una), версия ядра 5.4.0-109-generic.

0 ответов

Другие вопросы по тегам