Index: kernel/generic/include/string.h
===================================================================
--- kernel/generic/include/string.h	(revision 482c86fe027ae8daeadd5905411883986a9524ec)
+++ kernel/generic/include/string.h	(revision a78d001740e2ccd838b22b766e7d7338534733e0)
@@ -58,4 +58,6 @@
 #define U_CURSOR       0x2588
 
+#define U_BOM          0xfeff
+
 /**< No size limit constant */
 #define STR_NO_LIMIT  ((size_t) -1)
Index: kernel/generic/src/printf/printf_core.c
===================================================================
--- kernel/generic/src/printf/printf_core.c	(revision 482c86fe027ae8daeadd5905411883986a9524ec)
+++ kernel/generic/src/printf/printf_core.c	(revision a78d001740e2ccd838b22b766e7d7338534733e0)
@@ -250,5 +250,5 @@
  */
 static int print_str(char *str, int width, unsigned int precision,
-	uint32_t flags, printf_spec_t *ps)
+    uint32_t flags, printf_spec_t *ps)
 {
 	if (str == NULL)
@@ -298,14 +298,17 @@
  */
 static int print_wstr(wchar_t *str, int width, unsigned int precision,
-	uint32_t flags, printf_spec_t *ps)
+    uint32_t flags, printf_spec_t *ps)
 {
 	if (str == NULL)
 		return printf_putstr(nullstr, ps);
-
+	
+	if (*str == U_BOM)
+		str++;
+	
 	/* Print leading spaces. */
 	size_t strw = wstr_length(str);
 	if (precision == 0)
 		precision = strw;
-
+	
 	/* Left padding */
 	count_t counter = 0;
@@ -317,5 +320,5 @@
 		}
 	}
-
+	
 	/* Part of @a wstr fitting into the alloted space. */
 	int retval;
@@ -323,7 +326,7 @@
 	if ((retval = printf_wputnchars(str, size, ps)) < 0)
 		return -counter;
-
+	
 	counter += retval;
-
+	
 	/* Right padding */
 	while (width-- > 0) {
