Вопрос основан на неправильном понимании юникода. Unicode - это способ представления систем письма , а не языков. Представьте себе строку в кодировке Unicode, состоящую из трех кодовых точек U + 0073, U + 0069 и U + 006e, то есть «sin». Это английский? Это испанское слово «без»? Это «то» на каком-нибудь из нескольких скандинавских языков? Кто знает.
Вы упоминаете грузинский и хинди. Грузинский шрифт (ქართული დამწერლობა) может использоваться, чтобы представлять грузинский, конечно, но также и мегрельский, сванский и некоторые другие, еще более редкие языки. Там нет сценария "хинди", равно как и "английские" буквы. Поскольку английский написан латинскими буквами, которые мы унаследовали от наших латиноязычных носителей, хинди написан на деванагари (देवनागरी), прекрасном шрифте, который также используется для древнего санскрита и современного маратхи, непальского и десятков других языков. И не заводи меня на китайский.
Если вы нажали и должны принять хакерское близкое решение, вы можете сделать приближение: «так как этот персонаж из диапазона Деванагари (U + 0900 – U + 097F) или грузинского диапазона (U + 10A0 – U) + 10FC и U + 2D00 – U + 2D25), я предполагаю, что это, вероятно, хинди или грузин ». Такой метод был бы подвержен ошибкам и расплывчат, но вы могли бы начать с таблицы диапазонов здесь .