diff -ru a/src/ui_utils.c b/src/ui_utils.c --- a/src/ui_utils.c 2019-09-28 15:38:17.000000000 +0300 +++ b/src/ui_utils.c 2020-10-01 20:35:09.784576365 +0300 @@ -299,6 +299,27 @@ symbols_get_current_scope(doc, &cur_tag); g_string_append(stats_str, cur_tag); break; + case 'U': + { /* Print Unicode code point of the character at the caret. */ + guint eof = sci_get_length(sci); + if (pos < eof) + { + /* + Looks like content is always in UTF-8, even if the disk file is not. + Thus, just grab 6 bytes (or less, if eof is close), and interpret the + beginning as an UTF-8 character. + */ + gchar * chr = sci_get_contents_range(sci, pos, MIN(pos + 6, eof)); + gunichar uni = g_utf8_get_char_validated(chr, -1); + g_string_append_printf(stats_str, "U+%0*X", MAX(ABS(w) - 2, 4), uni); + g_free(chr); + } + else + { + g_string_append_printf(stats_str, "%*s", w, "(none)"); + }; + } + break; case 'Y': g_string_append_c(stats_str, ' '); g_string_append_printf(stats_str, "%d",