Ссылка в первом ответе выглядит так, как будто она может сработать;FWIW, я использовал библиотеку, связанную с этого поста , как основу для выполнения чего-то подобного.
Как вы увидите, автор создал кодек, подходящий для кодирования греческого языка, так чтобудет просто отправной точкой.
Вы говорите, что хотите преобразовать «произвольную» строку в ее «ближайший эквивалент»;сделать его полностью произвольным может быть сложно, так как «самые близкие» могут иметь разные значения в разных областях (например, что вы делаете со снеговиком Юникод)?
Если вы просто пытаетесь разобраться с латынью или латиницей-производные алфавиты, тогда «произвольный» должен быть выполнимым.