Повторяющиеся кодовые точки в richtextbox не отображаются - PullRequest
1 голос
/ 25 мая 2020

Я показываю значения в виде римских чисел, при печати на консоли все работало нормально. Однако при использовании форм windows в richtextbox не будут отображаться повторяющиеся кодовые точки.

Я попытался изменить шрифт, есть ли какая-то часть кодирования в richtextbox, которую мне не хватает?

Я создаю строку с помощью построителя строк , как вы можете видеть на рисунках ниже, строковая переменная действительно содержит символы. Оба примера используют значение 20 и отображают его с двумя кодовыми точками рядом со значением 10. Они добавляются сразу с помощью построителя строк перед отображением.

Здесь программа вызывает строку и отображает ее правильно:

Console variable

console output

Вот Richtextbox, но он не отображается:

rbox

outputbox

Это кодовые точки, которые я добавляю с помощью построителя строк: enter image description here

1 Ответ

0 голосов
/ 25 мая 2020

Форма не выводила заданную строку как XTerm (терминал, используемый в успешных примерах). Как сказал Джими, некоторые шрифты могут некорректно отображать кодовые точки. Однако проблема здесь в том, что XTerm обрабатывал кодовые точки иначе, чем формы windows.

Способ отображения и / или сравнения строки, в которой используются диакритические знаки или другая комбинация кодовых точек, использует нормализацию. В этом случае я возвращал строку из построителя строк, созданную путем добавления кодовых точек. Они искажались или неправильно считывались в момент ввода строки в richTextBox.

Использование формы нормализации K C решило эту проблему. Причина, по которой я выбрал K C вместо KD, заключается в том, что K C будет отображать символ с диакритическими знаками как один «символ», это важно, поскольку я использовал надстрочный знак для значений выше 1000.

для большего информацию о нормализации см. Unicode Annex # 15

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...