Python: как указать и просмотреть символы Unicode с большими номерами?

Символ Unicode U + 1d134 - это музыкальный символ «общего времени»; это похоже на заглавную «С».

Но используя Python 3.6, когда я указываю «\ U0001d134», я получаю глиф, который, кажется, указывает на неизвестный символ. На моем Mac это выглядит как квадрат со знаком вопроса внутри.

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

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


person wchlm    schedule 02.01.2018    source источник
comment
Вы запускаете это в своем терминале?   -  person user1767754    schedule 02.01.2018
comment
Да, это, вероятно, ограничение шрифта. Попробуйте скопировать квадрат и вставить куда-нибудь без засечек.   -  person Ry-♦    schedule 02.01.2018
comment
@ user1767754 Да.   -  person wchlm    schedule 02.01.2018
comment
@Райан Спасибо. Я пробовал TextEdit в режиме RTF с Helvetica и Google Docs с Ariel, и все равно получаю символ неизвестного символа, хотя в документе Google это просто пустой квадрат. Я должен сказать, что на xahlee.info/comp/unicode_music_symbols.html этот символ и многие другие также показаны как пустые квадраты.   -  person wchlm    schedule 02.01.2018
comment
Если глиф не является распространенным, возможно, ваш компьютер просто не может его представить, поскольку его нет ни в одном из доступных вам шрифтов. На моем компьютере, по-видимому, есть шрифт, который может его обрабатывать, но я понятия не имею, какой шрифт он использует. Кажется, мой браузер также может отображать это: 'foo\U0001d134bar' отображается как 'foo????bar' (с буквой C между последними буквами o и b) как в Python, так и в Firefox.   -  person Blckknght    schedule 02.01.2018
comment
Нет необходимости в дальнейших ответах, если только у кого-то нет откровения. Но я просто подумал, что упомяну, что (используя URL-адрес xahlee.info, который я дал в предыдущем комментарии), этот символ отображается как неизвестный в моей системе (MacBook Air 2013, MacOS 10.13.2), с использованием Chrome, Firefox и Safari. . Хотя я не проводил исчерпывающий поиск, одни и те же символы (т. е. не только этот) не отображаются во всех трех браузерах.   -  person wchlm    schedule 02.01.2018


Ответы (1)


Проблема заключается не в вашем коде, а в вашей локальной системе. У вас не установлен ни один шрифт, содержащий символ ???? "МУЗЫКАЛЬНЫЙ СИМВОЛ ОБЩЕЕ ВРЕМЯ".

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

Но – как это случилось,

>>> print ('\U0001d134')
????

работал для меня, отображая это:

общее время музыкального символа, напечатанное в Python

Я вставил его в UnicodeChecker, в котором перечислены "все" шрифты, содержащие этот символ: только один, Бравура. Это шрифт с открытым исходным кодом, поэтому скачайте его. (Будьте осторожны, чтобы следовать надлежащим процедурам, если вы хотите распространять его вместе со своим приложением.)

Подумать только, что этот шрифт был установлен только из-за более раннего ТАК вопрос.

person Jongware    schedule 02.01.2018
comment
Я понимаю, что не должен говорить «Спасибо» в комментарии, но что, черт возьми, если мне пристыдят несколько баллов. Тогда спасибо всем, кто помог, не в последнюю очередь за подтверждение ответов друг друга. И, @ usr2564301, спасибо также за объединение комментариев в ответ и за упоминание UnicodeChecker, музыкального шрифта Bravura и более ранний вопрос SO, ответ на который вышел за рамки моей текущей проблемы, чтобы осветить некоторые сложности использования OpenType для музыки. обозначение. (Что, к счастью, не то, что я планирую делать. :-)) - person wchlm; 03.01.2018