printf("%c", 0); could produce unexpected results the utf function was in the wrong place, so never worked. another issue, although less trivial, and probably not a bug, is that, i'd expect this: awk 'BEGIN {s="arble z a b c d"; split(s, a, " "); for(i in a){printf("''%s''\n", i)}}' to print: 'z' 'a' 'b' 'c' 'd' [or some permutation of the above] but it doesn't; it actually prints: '2' '3' '4' '5' '6' '1' this is probably just awk being its usual nasty, unintuitive self.