Кстати да. vala - это обертка над библиотекой glib, которую я сразу рекомендовал. Насколько я понимаю (я сам vala не использовал) - синтаксис C#, а семантика С. То есть все должно быть достаточно открыто, было бы желание разобраться. Библиотека glib лежит в основе библиотеки gtk+, которая лежит в основе библиотек gnome и сinammon. Очень многофункциональная библиотека, в том числе реализующая работу со строками UTF-8.
UTF-8 - это одна из возможных реализаций стандарта Юникоде. Дефакто стандартная кодировка для Linux, MacOS, BSD. Стандартная для языка программирования go. Но перед тем, как начать разбираться с UTF-8, надо иметь понятие, хотя бы поверхностное, о кодировках вообще и кодировке Юникоде.