Есть старый ребус про Motif и UTF-8. Motif UTF-8 поддерживает, но как задействовать эту поддержку, по ходу, знают единицы. Частично она включается через локаль UTF-8, но это только часть дела. Код тоже должен быть приведён к соответствующему виду.
Вот рабочий пример helloworld'а на Motif'е, который при локали UTF-8 выведет строку в UTF-8 terminus'ом:
#include <Xm/PushB.h>
int main(argc, argv)
int argc;
char *argv[];
{
    Widget        toplevel, button;
    XtAppContext  app;
    void          button_pushed();
    XmString 	  label;
    String mydefaults[] = { "*fontList:-xos4-terminus-bold-r-normal--28-*-*-*-*-*-iso10646-1", NULL };
    XtSetLanguageProc (NULL, NULL, NULL);
    toplevel = XtVaAppInitialize (&app, "Hello", NULL, 0,
        &argc, argv, mydefaults, NULL);
    label = XmStringCreateLocalized ("Push здесь to say hello"); 
    button = XtVaCreateManagedWidget ("pushme",
        xmPushButtonWidgetClass, toplevel,
        XmNlabelString, label,
        NULL);
    XmStringFree (label);
    XtAddCallback (button, XmNactivateCallback, button_pushed, NULL);
    XtRealizeWidget (toplevel);
    XtAppMainLoop (app);
}
void button_pushed(widget, client_data, call_data)
Widget widget;
XtPointer client_data;
XtPointer call_data;
{
    printf ("Hello Yourself!\n");
}
gcc -o hello hello.c -lXm -lXt -lX11










