Win32.Utf8

Я тут совсем недавно удивлялся почему нет библиотек, эмулирующих поддержку UTF-8 на уровне Win32 API. Т.е. такая библиотека реализует, скажем, CreateFileUtf8 в дополнение к предлагаемым системой CreateFileA и CreateFileW, а макрос CreateFile будет выбирать нужную реализацию уже из трех вариантов. Надо сказать, что по итогам обсуждения моё недоумение нисколько не уменьшилось. Даже ссылки на Michael Caplan - авторитета в этой области не помогли. Это, впрочем, как раз очень понятно. Набивать свои шишки куда как интереснее, чем послушать что говорят умные люди уже ходившие по этим граблям. :-)

В общем я решил попробовать набить своих шишек, - попробую написать эту библиотеку и добавить с её помощью поддержку Unicode в Notepad2 (вернее адаптированную под себя версию Notepad2). Пока что, всё выглядит довольно невинно - верный знак, что на самом деле всё гораздо сложнее. Нужно сделать следующее:

Учитывая, что тратить на это я могу от силы часов 8 в неделю – затея затянется надолго. Опять же цель этого мероприятия не столько получить конечный результат, сколько получить «бесценный» опыт. Так что торопиться не будем. Кроме того, это означает, что вариант написать всё обертки вручную так же не рассматривается. (Хотя, вполне возможно, это было бы проще всего).

В качестве языков разработки я выбрал Python и C (или C-подобный C++). На Python легко пишется всякая скриптовая логика. На C будет генерироваться код обёрток. Да и парсить C проще в разы.

О ходе работ и своих находках буду делиться в блоге. Если из проекта выйдет хоть какой толк, то исходный код будет выложен в публичный Subversion репозиторий. Критика и идеи приветствуются. :-)

comments powered by Disqus