It seems that xxd is not using locale to figure out which symbols are
printable and which should be represented by a ".". Because of that, it
substitutes all non-ASCII letters with a ".", which makes it harder to use
xxd for binary editing.
You're right, it had hardcoded ASCII values.
I've fixed this in 6.0-0.32.