if (State & KC_CHAR) 
{
  BYTE Character = CHAR1FROMMP (Message->mp2);                                 /*  "IBM-x", "ISO-8859-x", "Shift_JIS", "UTF-8", ... */
}
else
{
  ...                                                                          /*  "<Ctrl>", "<Alt>", "<Shift>", "<Esc>", "<Tab>", ... */
}