diff --git a/src/digraph.c b/src/digraph.c
index 6f9c46f..6909c5b 100644
--- a/src/digraph.c
+++ b/src/digraph.c
@@ -1979,14 +1979,37 @@
  * If not found return NULL.
  */
     char_u *
-get_digraph_for_char(val)
-    int val;
+get_digraph_for_char(int val_arg)
 {
+    int		val = val_arg;
     int		i;
     int		use_defaults;
     digr_T	*dp;
     static      char_u      r[3];
 
+#if defined(FEAT_MBYTE) && defined(USE_UNICODE_DIGRAPHS)
+    if (!enc_utf8)
+    {
+	char_u	    buf[6], *to;
+	vimconv_T   vc;
+
+	// convert the character from 'encoding' to Unicode
+	i = mb_char2bytes(val, buf);
+	vc.vc_type = CONV_NONE;
+	if (convert_setup(&vc, p_enc, (char_u *)"utf-8") == OK)
+	{
+	    vc.vc_fail = TRUE;
+	    to = string_convert(&vc, buf, &i);
+	    if (to != NULL)
+	    {
+		val = utf_ptr2char(to);
+		vim_free(to);
+	    }
+	    (void)convert_setup(&vc, NULL, NULL);
+	}
+    }
+#endif
+
     for (use_defaults = 0; use_defaults <= 1; use_defaults++)
     {
 	if (use_defaults == 0)
