Fundo:
- Eu tenho alguns caracteres unicode no meu prompt (marcadores de status git essencialmente)
- Estou executando o urxvt no xfce no arch linux.
Estou usando a fonte DejaVu Sans Mono for Powerline, especificada na linha .Xresources:
URxvt*font: xft:DejaVu Sans Mono for Powerline:pixelsize=14
Quando inicio o urxvt, os caracteres unicode não são renderizados corretamente.
Por exemplo
● é processado como
No entanto, se eu iniciar um novo a urxvtpartir do primeiro terminal, tudo será processado corretamente.
Não parece haver nenhuma diferença no ambiente entre os dois terminais.
Qual poderia ser a diferença entre a primeira chamada e a chamada aninhada? Suspeito que a fonte não esteja correta na instância 'externa', mas não sei como verificar a fonte de uma janela X em execução
ATUALIZAÇÃO : Parece que o código do idioma não está configurado corretamente no iniciador de aplicativos para o xfce4, mas presumivelmente o shell dentro do primeiro terminal possui seu próprio código de idioma, o que significa que os dois shells têm o mesmo código de idioma.
adicionando
export LANG=en_GB.UTF-8
para .xinitrc antes que o xfce4 seja iniciado parece corrigi-lo. Eu suspeito que essa não seja a maneira correta , mas funciona bem o suficiente para mim.
captura de tela demonstra o problema:

Nota: mudei esta pergunta de serverfault.com - espero que este site seja mais apropriado
LC_ALL=ru_RU.utf8 urxvtpartir da sessão X atual. Se os caracteres russos (e outros Unicode) ficarem corretos, você estará no caso em que seu ambiente estiver sendo executado no código C. Portanto, verifique as configurações de localidade xfce. Por exemplo, se você o iniciou, .xinitrctente definir o código do idioma antes de executar como LANG=ru_RU.utf8 exec startxfce4.
