Parece que write está interpretando o bit alto como 'meta-' (tecla Meta + ou Esc ). Uma rápida olhada no código fonte (função wr_fputs() in write.c ) confirma isso: os caracteres de controle são mostrados como ^X , os caracteres com o bit alto configurado são mostrados como M-X . Configurações de localização, terminais e codificações não têm nada a ver com isso, receio. write é apenas de 7 bits.
Agora, sou uma aberração Unicode, mas isso faz um sentido perverso. write apenas abre o alvo TTY e escreve para ele (não há mágica envolvida). Não há uma maneira fácil de entender a codificação de caracteres pelo processo que controla o TTY remoto. E mesmo se houvesse, nem todas as codificações são conversíveis para todas as outras codificações. E sem conversão, transmitir uma mensagem no KOI8-R para um console ISO-8859-1 falharia miseravelmente. Como write adota a abordagem simplista dos anos 70, é isso que conseguimos.