Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Начнём с того, что юникод 8.0 охватывает более 120 000 символов из более 129 письменностей.
ЭФ>log(2, 120 000) = 16.872674880271
ЭФ>это значит, что все символы в два байта не влезают.
Это верно
ЭФ>Старые строки в C# насквозь кривые (потому что там два байта на символ) и
ЭФ>не поддерживают модные смайлики и японские символы (а это важно для поколения анимешников!).
За смайлики не знаю, но с японскими символами работаю около 12и лет через C# строки и никаких проблем пока не обнаружил. Все за редким исключением находятся в UCS.
ЭФ>Наличие смайликов суперкритично для вставки такого текстового редактора в различные мессенжеры.
Вот тут не очень понимаю, причем тут C# и его способ представления символов? Чем он мешает работе редактора? Для редактора нужно уметь отображать символы на графическом устройстве, брать текст на входе, отдавать на выходе. Отображением занимается шрифт, там фактически лежат инструкции по отрисовке глифов, их размеры, отступы, они не привязаны к C# представлению строк. Вход-выход текста в редактор можно вполне реализовать через юникод.
ЭФ>Вы говорите, что программист на C# легко найдёт работуАвтор: Эйнсток Файр
Дата: 15.10.22
. Допустим, что он последний раз программировал на C# в 2005-м году.
ЭФ>Он знает классы String, Encoding и StringBuilder.
ЭФ>А на собеседовании его завалят. Смайлики! Он не в состоянии обработать смайлики в тексте! 👩🔬
Что подразумевается под словом "обработать"?
Если нужно отобразить смайлик на устройстве и человек когда-то слышал об юникоде и в состоянии открыть хотя бы википедию, то для отображения смайлика ему не потребуется String, Encoding и StringBuilder. Нужно лишь понять, как в шрифте найти глиф, соотвествующий закодированному символу. Для этого есть API в соотвествующих библиотеках по работе со шрифтами.
Создание редактора, поддерживающего нюансы юникода — задача не формата собеседования. Но посмотреть, ход мыслей кандидата при получении такого задания — было бы прикольно.