Unicode комбинированный символ удара оказывается на неправильной высоте - PullRequest
0 голосов
/ 16 января 2019

У меня есть строка вроде «€ 1,49», и я бы хотел, чтобы она была обозначена юникодом. Я знаю, что это должно быть возможно с U + 0336 , который я применяю к моей строке (в Python) следующим образом:

'\u0336'.join('€1,49') + '\u0336'

Проблема состоит в том, что это приводит к удару запятой на высоте, отличной от остальной части струны, что убивает иллюзию чистого зачеркивания (см. Скриншот). screenshot

Может кто-нибудь сказать мне, что я здесь не так делаю?

1 Ответ

0 голосов
/ 16 января 2019

Я думаю, вы не можете это сделать.

Вы ищете форматирование, которое выходит за рамки юникода. Вы должны делать с управляющим символом (если ваш терминал поддерживает его), или с html, или другими средствами.

Вы используете функцию, созданную в основном для изменения существующих символов (и того же типа).

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

Вы можете получить лучшие результаты, если заменить запятую запятой и некоторыми комбинирующими символами (например, пробелами), чтобы шрифт воспринимал комбинацию как более высокий символ и, следовательно, более выравниваемый удар. Но, как я уже писал, он не очень переносимый и зависит от вашего шрифта, поэтому я не могу проверить и дать вам хорошее решение. [И, как я уже говорил ранее, использовать U + 0336 для такой области форматирования - плохой вкус]

...