diff -up vim71/src/xxd/xxd.c.xxd vim71/src/xxd/xxd.c
--- vim71/src/xxd/xxd.c.xxd	2008-07-18 14:21:03.000000000 +0200
+++ vim71/src/xxd/xxd.c	2008-07-18 14:23:48.000000000 +0200
@@ -90,6 +90,7 @@
 #if __MWERKS__ && !defined(BEBOX)
 # include <unix.h>	/* for fdopen() on MAC */
 #endif
+#include <locale.h>
 
 #if defined(__BORLANDC__) && __BORLANDC__ <= 0x0410 && !defined(fileno)
 /* Missing define and prototype grabbed from the BC 4.0 <stdio.h> */
@@ -452,6 +453,11 @@ char *argv[];
   long length = -1, n = 0, seekoff = 0;
   char l[LLEN+1];
   char *pname, *pp;
+  char *lang=getenv("LANG");
+  if(!lang) lang=getenv("LC_ALL");
+  if(!lang) lang=getenv("LC_CTYPE");
+  if(lang)
+         setlocale(LC_ALL, lang);
 
 #ifdef AMIGA
   /* This program doesn't work when started from the Workbench */
@@ -756,7 +762,7 @@ char *argv[];
 #else
 	  (e > 31 && e < 127)
 #endif
-	  ? e : '.';
+	  ? e : isalnum(e) ? e : '.';
       if (e)
 	nonzero++;
       n++;
