29 ноября 2006

точный однобайтовый транслит в кирилицу

Пришлось думать над такой задачей:
1. Надо чтобы русские символы однозначно транслировались в английские буквы и обратно.
2. Чтобы текст был узнаваем в английском варианте, а при переводе в русский текст не видоизменялся

например слово Солнце будет написано так: Solnce
Все верно, проблемма возникает на буквах: ЖЧШЩЪЬЫЭЮЯ
Как их заменить ? Можно так: Ж - ZH
Давайте найдем сочетания:
Ж - zh
Ч - ch
Ш - sh
Щ - hh
Ъ - yy
Ь - ii
Ы - ui
Э - ie
Ю - iu
Я - ia

Примерно так, однако в этом случае не исключены варианты совпадения и искажения при транслите.
Однозначно можно решить проблему так:
Ж - 1
Ч - 2
Ш - 3
Щ - 4
Ъ - 5
Ь - 6
Ы - 7
Э - 8
Ю - 9
Я - 0

Хорошо что хватило цифр. Мы избавились от двухбайтовости и относительно сохранили читаемость.
лишь 10 редкоиспользуемых руских букв заменены на цифры. Текст будет читабелен.
ode1da - крассворд какой-то 8))
Встает только вопрос о том: Большие или маленькие буквы
Вообще тут все зависит от темы использования.
Для имен файлов - это прокатит, первую букву можно автоматом поднять.
Значит все буквы маленькие.

А в обычном тексте - такой транслит не нужен.


Видеочат рулетка