(Editado para esclarecer o papel do Emacs no problema com a exibição.)
Minha sessão gnu-screen
atual ficou corrompida de alguma forma, e o Emacs não exibe corretamente os caracteres UTF-8.
Confirmei que em processos gnu-screen
recém-iniciados, o Emacs exibe caracteres UTF-8 corretamente, mas no momento seria muito difícil substituir a sessão gnu-screen
corrompida por uma nova e, em vez disso,
I'm looking for ways to further troubleshoot the problem with this corrupted gnu-screen
session, and hopefully fix it.
FWIW, dou mais informações abaixo, incluindo uma descrição do que fiz até agora para diagnosticar o problema.
Comecei esta gnu-screen
sessão há vários dias na minha estação de trabalho OS X no trabalho com
% screen -U
... (como sempre faço). Desde então, tenho anexado novamente esta sessão a partir de várias máquinas (possivelmente após o primeiro ssh
-ing para minha estação de trabalho) usando
% screen -U -dR
(mais uma vez, isso é o que eu sempre faço). Eu fiz exatamente isso esta manhã na minha estação de trabalho no trabalho (a máquina onde o processo gnu-screen
está realmente em execução).
Hoje, pela primeira vez desde que criei esta sessão gnu-screen
, precisei trabalhar com arquivos que continham muitos caracteres UCE-8 não-ascii. Foi então que descobri que essa sessão gnu-screen
deve ter sido corrompida de alguma forma, porque exibe todos esses caracteres como ?
, resultando em uma exibição inutilizável.
(Como já aludi, esses arquivos ricos em UTF-8 são exibidos corretamente por gnu-screen
sessões recém-iniciadas, por isso tenho certeza que o problema de exibição é com a sessão gnu-screen
específica que aqui eu Além disso, confirmei que " ???
display" aparece em todos os terminais dos quais associei a sessão gnu-screen
, portanto, o problema não está no programa terminal que hospeda a sessão gnu-screen
Por último, eu também confirmei que o problema não é com uma sessão Emacs em particular: na sessão gnu-screen
corrompida, todas as novas sessões do Emacs exibem os caracteres UTF-8 como ?
, que argumenta contra o problema estar com uma sessão específica do Emacs.)
Confirmei que utf8
é on
executando
:utf8 on on
A saída de :info
é
(1,5)/(210,52)+10000 +(-)flow app log UTF-8 0(zsh)
E, FWIW:
% /usr/local/bin/screen --version
Screen version 4.00.03 (FAU) 23-Oct-06
Além disso, devo salientar que novo
O que mais posso fazer para solucionar esse problema?
ATUALIZAÇÃO: Drav Sloan e Stephane Chazelas perguntaram sobre minhas configurações de localidade:
% locale
LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
Atualmente, para o OS X, não configuro nenhuma variável relacionada ao código do idioma.
Nos sistemas Linux, meu .zshenv
é definido
export LANG=en_US.utf8
export LC_ALL=en_US.utf8
... mas se eu colocar as mesmas linhas no meu .zshenv em Darwin, recebo mensagens de erro dizendo que "a configuração da localidade falhou". Eu vagamente lembro de ter batido meu crânio por várias horas sobre o problema de encontrar as configurações de localidade corretas para Darwin / Lion. Pode ter sido que "definição de nada" emergiu como a solução "menos horrível" para o problema e, afinal, pelo menos gnu-screen
sessões frescas exibem caracteres UTF-8 corretamente, mesmo na ausência de uma configuração de localidade explícita. Mas claramente eu preciso descobrir como definir o local em Darwin / Lion ...
UPDATE2: OK, acho que descobri o motivo dos erros que mencionei acima: em Darwin / Lion, a string en_US.utf8
é inválida; em vez disso, deve ser en_US.UTF-8
.