diff --git a/src/ascmagic.c b/src/ascmagic.c
index 9d383be32..7b0b17205 100644
--- a/src/ascmagic.c
+++ b/src/ascmagic.c
@@ -50,7 +50,7 @@ FILE_RCSID("@(#)$File: ascmagic.c,v 1.107 2020/06/08 19:58:36 christos Exp $")
 #define ISSPC(x) ((x) == ' ' || (x) == '\t' || (x) == '\r' || (x) == '\n' \
 		  || (x) == 0x85 || (x) == '\f')
 
-private unsigned char *encode_utf8(unsigned char *, size_t, unichar *, size_t);
+private unsigned char *encode_utf8(unsigned char *, size_t, unicodechar *, size_t);
 private size_t trim_nuls(const unsigned char *, size_t);
 
 /*
@@ -69,7 +69,7 @@ trim_nuls(const unsigned char *buf, size_t nbytes)
 protected int
 file_ascmagic(struct magic_set *ms, const struct buffer *b, int text)
 {
-	unichar *ubuf = NULL;
+	unicodechar *ubuf = NULL;
 	size_t ulen = 0;
 	int rv = 1;
 	struct buffer bb;
@@ -102,7 +102,7 @@ file_ascmagic(struct magic_set *ms, const struct buffer *b, int text)
 
 protected int
 file_ascmagic_with_encoding(struct magic_set *ms,
-    const struct buffer *b, unichar *ubuf, size_t ulen, const char *code,
+    const struct buffer *b, unicodechar *ubuf, size_t ulen, const char *code,
     const char *type, int text)
 {
 	struct buffer bb;
@@ -334,7 +334,7 @@ file_ascmagic_with_encoding(struct magic_set *ms,
  * after end of string, or NULL if an invalid character is found.
  */
 private unsigned char *
-encode_utf8(unsigned char *buf, size_t len, unichar *ubuf, size_t ulen)
+encode_utf8(unsigned char *buf, size_t len, unicodechar *ubuf, size_t ulen)
 {
 	size_t i;
 	unsigned char *end = buf + len;
diff --git a/src/encoding.c b/src/encoding.c
index dffb1b398..378118ec5 100644
--- a/src/encoding.c
+++ b/src/encoding.c
@@ -43,14 +43,14 @@ FILE_RCSID("@(#)$File: encoding.c,v 1.24 2020/07/26 17:00:51 christos Exp $")
 #include <stdlib.h>
 
 
-private int looks_ascii(const unsigned char *, size_t, unichar *, size_t *);
-private int looks_utf8_with_BOM(const unsigned char *, size_t, unichar *,
+private int looks_ascii(const unsigned char *, size_t, unicodechar *, size_t *);
+private int looks_utf8_with_BOM(const unsigned char *, size_t, unicodechar *,
     size_t *);
-private int looks_utf7(const unsigned char *, size_t, unichar *, size_t *);
-private int looks_ucs16(const unsigned char *, size_t, unichar *, size_t *);
-private int looks_ucs32(const unsigned char *, size_t, unichar *, size_t *);
-private int looks_latin1(const unsigned char *, size_t, unichar *, size_t *);
-private int looks_extended(const unsigned char *, size_t, unichar *, size_t *);
+private int looks_utf7(const unsigned char *, size_t, unicodechar *, size_t *);
+private int looks_ucs16(const unsigned char *, size_t, unicodechar *, size_t *);
+private int looks_ucs32(const unsigned char *, size_t, unicodechar *, size_t *);
+private int looks_latin1(const unsigned char *, size_t, unicodechar *, size_t *);
+private int looks_extended(const unsigned char *, size_t, unicodechar *, size_t *);
 private void from_ebcdic(const unsigned char *, size_t, unsigned char *);
 
 #ifdef DEBUG_ENCODING
@@ -62,11 +62,11 @@ private void from_ebcdic(const unsigned char *, size_t, unsigned char *);
 /*
  * Try to determine whether text is in some character code we can
  * identify.  Each of these tests, if it succeeds, will leave
- * the text converted into one-unichar-per-character Unicode in
+ * the text converted into one-unicodechar-per-character Unicode in
  * ubuf, and the number of characters converted in ulen.
  */
 protected int
-file_encoding(struct magic_set *ms, const struct buffer *b, unichar **ubuf,
+file_encoding(struct magic_set *ms, const struct buffer *b, unicodechar **ubuf,
     size_t *ulen, const char **code, const char **code_mime, const char **type)
 {
 	const unsigned char *buf = CAST(const unsigned char *, b->fbuf);
@@ -74,7 +74,7 @@ file_encoding(struct magic_set *ms, const struct buffer *b, unichar **ubuf,
 	size_t mlen;
 	int rv = 1, ucs_type;
 	unsigned char *nbuf = NULL;
-	unichar *udefbuf;
+	unicodechar *udefbuf;
 	size_t udeflen;
 
 	if (ubuf == NULL)
@@ -88,7 +88,7 @@ file_encoding(struct magic_set *ms, const struct buffer *b, unichar **ubuf,
 	*code_mime = "binary";
 
 	mlen = (nbytes + 1) * sizeof((*ubuf)[0]);
-	if ((*ubuf = CAST(unichar *, calloc(CAST(size_t, 1), mlen))) == NULL) {
+	if ((*ubuf = CAST(unicodechar *, calloc(CAST(size_t, 1), mlen))) == NULL) {
 		file_oomem(ms, mlen);
 		goto done;
 	}
@@ -250,7 +250,7 @@ private char text_chars[256] = {
 };
 
 private int
-looks_ascii(const unsigned char *buf, size_t nbytes, unichar *ubuf,
+looks_ascii(const unsigned char *buf, size_t nbytes, unicodechar *ubuf,
     size_t *ulen)
 {
 	size_t i;
@@ -270,7 +270,7 @@ looks_ascii(const unsigned char *buf, size_t nbytes, unichar *ubuf,
 }
 
 private int
-looks_latin1(const unsigned char *buf, size_t nbytes, unichar *ubuf, size_t *ulen)
+looks_latin1(const unsigned char *buf, size_t nbytes, unicodechar *ubuf, size_t *ulen)
 {
 	size_t i;
 
@@ -289,7 +289,7 @@ looks_latin1(const unsigned char *buf, size_t nbytes, unichar *ubuf, size_t *ule
 }
 
 private int
-looks_extended(const unsigned char *buf, size_t nbytes, unichar *ubuf,
+looks_extended(const unsigned char *buf, size_t nbytes, unicodechar *ubuf,
     size_t *ulen)
 {
 	size_t i;
@@ -372,11 +372,11 @@ struct accept_range {
 };
 
 protected int
-file_looks_utf8(const unsigned char *buf, size_t nbytes, unichar *ubuf, size_t *ulen)
+file_looks_utf8(const unsigned char *buf, size_t nbytes, unicodechar *ubuf, size_t *ulen)
 {
 	size_t i;
 	int n;
-	unichar c;
+	unicodechar c;
 	int gotone = 0, ctrl = 0;
 
 	if (ubuf)
@@ -451,7 +451,7 @@ file_looks_utf8(const unsigned char *buf, size_t nbytes, unichar *ubuf, size_t *
  * rest of the text.
  */
 private int
-looks_utf8_with_BOM(const unsigned char *buf, size_t nbytes, unichar *ubuf,
+looks_utf8_with_BOM(const unsigned char *buf, size_t nbytes, unicodechar *ubuf,
     size_t *ulen)
 {
 	if (nbytes > 3 && buf[0] == 0xef && buf[1] == 0xbb && buf[2] == 0xbf)
@@ -461,7 +461,7 @@ looks_utf8_with_BOM(const unsigned char *buf, size_t nbytes, unichar *ubuf,
 }
 
 private int
-looks_utf7(const unsigned char *buf, size_t nbytes, unichar *ubuf, size_t *ulen)
+looks_utf7(const unsigned char *buf, size_t nbytes, unicodechar *ubuf, size_t *ulen)
 {
 	if (nbytes > 4 && buf[0] == '+' && buf[1] == '/' && buf[2] == 'v')
 		switch (buf[3]) {
@@ -480,7 +480,7 @@ looks_utf7(const unsigned char *buf, size_t nbytes, unichar *ubuf, size_t *ulen)
 }
 
 private int
-looks_ucs16(const unsigned char *bf, size_t nbytes, unichar *ubf,
+looks_ucs16(const unsigned char *bf, size_t nbytes, unicodechar *ubf,
     size_t *ulen)
 {
 	int bigend;
@@ -503,10 +503,10 @@ looks_ucs16(const unsigned char *bf, size_t nbytes, unichar *ubf,
 
 		if (bigend)
 			ubf[(*ulen)++] = bf[i + 1]
-			    | (CAST(unichar, bf[i]) << 8);
+			    | (CAST(unicodechar, bf[i]) << 8);
 		else
 			ubf[(*ulen)++] = bf[i]
-			    | (CAST(unichar, bf[i + 1]) << 8);
+			    | (CAST(unicodechar, bf[i + 1]) << 8);
 
 		if (ubf[*ulen - 1] == 0xfffe)
 			return 0;
@@ -519,7 +519,7 @@ looks_ucs16(const unsigned char *bf, size_t nbytes, unichar *ubf,
 }
 
 private int
-looks_ucs32(const unsigned char *bf, size_t nbytes, unichar *ubf,
+looks_ucs32(const unsigned char *bf, size_t nbytes, unicodechar *ubf,
     size_t *ulen)
 {
 	int bigend;
@@ -541,15 +541,15 @@ looks_ucs32(const unsigned char *bf, size_t nbytes, unichar *ubf,
 		/* XXX fix to properly handle chars > 65536 */
 
 		if (bigend)
-			ubf[(*ulen)++] = CAST(unichar, bf[i + 3])
-			    | (CAST(unichar, bf[i + 2]) << 8)
-			    | (CAST(unichar, bf[i + 1]) << 16)
-			    | (CAST(unichar, bf[i]) << 24);
+			ubf[(*ulen)++] = CAST(unicodechar, bf[i + 3])
+			    | (CAST(unicodechar, bf[i + 2]) << 8)
+			    | (CAST(unicodechar, bf[i + 1]) << 16)
+			    | (CAST(unicodechar, bf[i]) << 24);
 		else
-			ubf[(*ulen)++] = CAST(unichar, bf[i + 0])
-			    | (CAST(unichar, bf[i + 1]) << 8) 
-			    | (CAST(unichar, bf[i + 2]) << 16)
-			    | (CAST(unichar, bf[i + 3]) << 24);
+			ubf[(*ulen)++] = CAST(unicodechar, bf[i + 0])
+			    | (CAST(unicodechar, bf[i + 1]) << 8) 
+			    | (CAST(unicodechar, bf[i + 2]) << 16)
+			    | (CAST(unicodechar, bf[i + 3]) << 24);
 
 		if (ubf[*ulen - 1] == 0xfffe)
 			return 0;
diff --git a/src/file.h b/src/file.h
index 28ebc0c18..ec30d894c 100644
--- a/src/file.h
+++ b/src/file.h
@@ -464,7 +464,7 @@ struct magic_set {
 };
 
 /* Type for Unicode characters */
-typedef unsigned long unichar;
+typedef unsigned long unicodechar;
 
 struct stat;
 #define FILE_T_LOCAL	1
@@ -498,9 +498,9 @@ protected int file_zmagic(struct magic_set *, const struct buffer *,
 protected int file_ascmagic(struct magic_set *, const struct buffer *,
     int);
 protected int file_ascmagic_with_encoding(struct magic_set *,
-    const struct buffer *, unichar *, size_t, const char *, const char *, int);
+    const struct buffer *, unicodechar *, size_t, const char *, const char *, int);
 protected int file_encoding(struct magic_set *, const struct buffer *,
-    unichar **, size_t *, const char **, const char **, const char **);
+    unicodechar **, size_t *, const char **, const char **, const char **);
 protected int file_is_json(struct magic_set *, const struct buffer *);
 protected int file_is_csv(struct magic_set *, const struct buffer *, int);
 protected int file_is_tar(struct magic_set *, const struct buffer *);
@@ -527,7 +527,7 @@ protected size_t file_mbswidth(const char *);
 protected const char *file_getbuffer(struct magic_set *);
 protected ssize_t sread(int, void *, size_t, int);
 protected int file_check_mem(struct magic_set *, unsigned int);
-protected int file_looks_utf8(const unsigned char *, size_t, unichar *,
+protected int file_looks_utf8(const unsigned char *, size_t, unicodechar *,
     size_t *);
 protected size_t file_pstring_length_size(struct magic_set *,
     const struct magic *);
