Отображение суррогатной пары (символа с кодом > FFFF)06.03.2018, 00:48. Показов 2880. Ответов 10
Доброго времени суток. Итак, стоит задача отобразить unicode-символ с кодом > FFFF
Получить суррогатную пару можно вот таким способом:
На выходе получается суррогатная пара (2 символа, которые, однако, должны отображаться как один). Но при отправке, например в TextBox или Label, они все равно отображаются как 2 Неужто C# не поддерживает суррогатные пары "из коробки"? Сразу скажу, шрифт для отображения таких символов имеется, но дело не в шрифте. Добавлено через 6 часов 38 минут TextBox, Label и даже MessageBox не поддерживают вывод суррогатной пары, как я не старался. Решение: суррогатные пары поддерживает RichTextBox Но нигде это четко не прописано. Решил методом научного тыка, основываясь на Windows controls, including Edit and Rich Edit, support supplementary characters. Не по теме: медленно фонарея ушел в закат
0
|
||||||
| 06.03.2018, 00:48 | |
|
Ответы с готовыми решениями:
10
Вывод символа с максимальны и минимальным кодом Скрытие и отображение картинок в Word-е кодом Заменить в строке обозначение символа с заданным кодом на сам символ |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||||||
| 06.03.2018, 10:53 | |||||||
0
|
|||||||
| 06.03.2018, 20:20 [ТС] | |
|
Rius, У вас пример под какой-то более новый Framework и студию.
Наверное, следовало уточнить, что мне нужно сделать под .NET Framework 2.0 kolorotur, Не в шрифте, даже если шрифт не тот, в TextBox и Label видно 2 символа, в RichTextBox 1 Впрочем, дело может быть в неполной поддержке Unicode .NET Framework 2.0. или 2008 VS.
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 06.03.2018, 22:44 | |
|
stpigidy, проверил под .NET 2.0 и на 2010-й студии (2008-й нет) — результат тот же, рабочий.
Может у вас не суррогатная пара, а лигатура? Какой код символа?
0
|
|
| 06.03.2018, 23:33 [ТС] | |
|
kolorotur,
Ну вот, например, анатолийский иероглиф 0x14476. Шрифт есть. Прикреплю к посту шрифт и пример с TextBox, label и RichTextBox. Кстати, при дальнейших экспериментах выяснилось, RichTextBox видит, что это 1 символ, а не 2, но отобразить не может, даже если ему напрямую задаешь шрифт. Из windows программ символ корректно отображается в BabelMap (специальная программа, поддерживающая весь диапазон Unicode) и в графическом редакторе Inkscape. Word не может вообще шрифт назначить символу, хотя видит его как один символ и в предпросмотре в окне установки шрифта даже показывает. Я так понимаю, чтобы добиться хотя бы отображения всех символов Unicode надо брать из шрифта нужный глиф и вручную отрендерить его в PictureBox, что-ли... Конечная цель вообще написать простой редактор, поддерживающий все символы Юникода (вообще некоторые - астрологические, алхимические, египетские и лувийские иероглифы, но где некоторые там и все). А пока решил сделать нечто вроде урезанной версии BabelMap - программу, отображающую символы Unicode и их коды, типа таблицы символов в Windows
0
|
|
| 07.03.2018, 02:13 [ТС] | ||||||
|
Внезапно, PictureBox отрисовал без проблем:
0
|
||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 07.03.2018, 11:21 | |
|
stpigidy, запустил ваш проект — все отображается нормально. Пришлось только ричтекстбоксу шрифт установить до установки текста.
Запустил ту же откомпилированную прогу на семерке без сервиспака и с .NET 4.5.2 — отображает двумя символами. Сейчас установлю сервиспак и последний фреймворк — посмотрим, поможет ли. Может, дело вообще в виндовсе — где-нибудь надо установить галочку в дебрях региональных настроек.
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 07.03.2018, 17:30 | |
Сообщение было отмечено Usaga как решение
Решение
С установкой SP1 для семерки все заработало, даже фреймворк обновлять не пришлось:
Похоже, что проблема где-то в винде сидела, а не в шарпе/.NET
1
|
|
|
|
|
| 07.03.2018, 17:42 | |
|
Типа такого, возможно: https://support.microsoft.com/... squares-in
0
|
|
| 07.03.2018, 22:47 [ТС] | |
|
kolorotur, В XP проблема решилась также установкой шрифта перед тем, как задать текст.
Т.е. получается, самый универсальный способ - использовать RichTextBox и устанавливать шрифт перед установкой текста. Спасибо!
0
|
|
| 07.03.2018, 22:47 | |
|
Помогаю со студенческими работами здесь
11
Ввести два символа с клавиатуры и сравнить и вывести символ с большим кодом
Отображение символа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|