Библиотека транслитерации для .Net

Одно из возможных решений для транслитерации в приложении на C# — это  библиотека Unidecode. Единственным недостатком является большой размер библиотеки (660Кб) из-за того, что библиотека позволяет транслитерировать весь юникод(почти весь).

Использовать библиотеку очень просто:

using BinaryAnalysis.UnidecodeSharp;
String translit = "Русский текст".Unidecode();

Здесь можно найти более лаконичное решение только для русского языка.

 

 

Когда Path.Combine не работает

Метод Path.Combine, предназначенный для облегчения жизни разработчика, в действительности, содержит подводный камень, не позволяющий его использовать так бездумно, как хотелось бы.  Нелогичность (логичность от Microsoft) замечена не только мною и заключается в том, что если второй путь является абсолютным, то возвращается только второй путь.

Например:

Path.Combine("dir1", @"dir2");

В Microsoft серьезно думают, что разработчик ожидает  получить dir2. Логичной  была  бы  проверка настоящего абсолютного пути(c именем диска c:dir2) , а не просто наличие слеша(Path.DirectorySeparatorChar) в начале.

Следующий вызов Path.Combine возвращает полную бессмыслицу «dir1.dir2»

String path = Path.Combine("dir1", @".dir2");

Мораль проста — помнить об этой особенности и писать свой костыльный Path.Combine.