Я сталкиваюсь со странной проблемой; фрагмент кода Python из "Изучите трудный путь с Python", выполненный на MacOS и Ubuntu 16.04, дает мне совершенно разные визуальные результаты.

Извините за прикрепление скриншотов, чтобы продемонстрировать проблему ...

убунту MacOS

Как вы можете видеть для некоторых языков в Ubuntu, терминал не отображает символы Юникода (вместо этого выделяя маленькие квадраты), и я пытаюсь выяснить, почему

1 ответ1

2

Если в обеих системах это неправильно, и используется один и тот же выбор шрифта, другое место, чтобы посмотреть на таблицы локали, которые могут отличаться в двух системах.

xterm проверяет системные таблицы при запуске и может использовать свои собственные таблицы, если в системе слишком много проблем. Выбор контролируется ресурсом mkWidth .

Например, в отчете об ошибке FreeBSD # 219800 я составил таблицу, показывающую количество неправильно закодированных символов для нескольких разных систем, включая OSX и Linux. Теперь ... если таблицы Ubuntu прошли первоначальный тест, но имели проблемы на менее используемых диалектах, в то время как OSX не прошел тест, и xterm решил использовать свою собственную таблицу (которая, как оказалось, лучше работала со шрифтом), тогда вы может получить такую разницу.

Просто глядя на скриншоты, недостающие символы выглядят как кодовые точки, использующие комбинированные символы. Это особенно важно для поддержки локали, так как дополнительные символы после базового символа будут сообщаться wcwidth как нулевая ширина.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .