Eu tenho alguns arquivos de texto codificados em UTF-8 que exibem códigos de escape estranhos no Emacs. Por exemplo, este texto:
Em ista quaestione primo exponam quid intelligendum est for hoc nomen 'Deus'; segundo, responde ad quaestionem.
Shows como este no Emacs:
Isso só acontece no Emacs. Outros editores mostram o texto corretamente. Como posso resolver este problema?
Atualização 1
Se eu ligar revert-buffer-with-coding-system
e selecionar utf-8
o arquivo, será lido corretamente. Portanto, como Gilles adivinhou corretamente, o Emacs não está detectando a codificação do arquivo. Se eu adicionar o código ; -*- coding: utf-8 -*-
ao arquivo, o Emacs será aberto e exibido corretamente.
Atualização 2
Eu recodifiquei o arquivo em "UTF-8 com codificação de BOM" e agora ele é exibido corretamente no Emacs. Não sei qual é a diferença entre os dois tipos, mas o Emacs parece estar ciente apenas do BOM.
fonte
emacs -q
ouemacs -Q
?emacs -q
ouemacs -Q
.Respostas:
Por alguma razão, o Emacs não está reconhecendo o arquivo como UTF-8. Você pode forçar o Emacs a reabrir o arquivo como UTF-8 executando o comando
C-x RET r
(revert-buffer-with-coding-system
) e digitandoutf-8
.O motivo pelo qual o Emacs não reconheceu esse arquivo como UTF-8 (mas reconhece outro) provavelmente é que ele contém alguma sequência UTF-8 inválida. Essa sequência ainda aparecerá como barra invertida seguida por três dígitos octais com uma cor diferente (a
escape-glyph
face) após a reinterpretação do arquivo como UTF-8. Você pode procurar essa sequência executandoC-M-s
(isearch-regexp
) e procurandoonde
^@
é digitada digitandoC-q C-SPC
(é o caractere ^ @ = 0, não a sequência de dois caracteres circunflexa; o caractere antes de ser o caractere circunflexo).Você pode forçar o Emacs para reconhecer o arquivo como UTF-8, adicionando uma variável de arquivo sistema de codificação : colocar algo como
-*-coding: utf-8-*-
na primeira linha, ou colocar algo como isso perto do final do arquivo (você pode substituir#
por qualquer prefixo, masLocal Variables:
eEnd:
obrigação aparecem exatamente assim com os dois pontos à direita):O Emacs escolhe a codificação de acordo com a qual os arquivos são interpretados com base em várias configurações, principalmente ambientes de idiomas e variáveis
auto-coding-alist
eauto-coding-regexp-alist
. Como você tem o mesmo problema com este arquivo, mesmo em execuçãoemacs -Q
, acho que esse não é um problema com essas configurações, mas com o conteúdo do arquivo.fonte
\342
,\200
,\230
, etc. selecionado. Mas se eu abrir "corretamente" (usando a variável de codificação), nenhum resultado da pesquisa será exibido.emacs -Q
).É tarde para responder à pergunta sobre a lista técnica, mas farei de qualquer maneira.
A marca de ordem dos bytes (BOM) é uma sequência de três bytes \ xef \ xbb \ xbf que, no início de um arquivo, indica aos sistemas e aplicativos que o conteúdo está codificado como UTF-8. Devidamente, são metadados, não tratados como parte do conteúdo.
A maioria dos aplicativos - o Emacs é um deles - honra a BOM e grava todos os arquivos UTF-8. Outras aplicações podem honrá-lo na leitura, mas não escrevê-lo; e outros não sabem disso e podem lançar uma mensagem de erro quando a encontrarem. Em outras palavras, a situação é confusa. Eu prefiro usá-lo sempre que possível.
fonte
Somente para sistemas UNIX.
Em muitos casos, a definição de codificação direta em ~ / .bashrc ~ / bash_profile
realizado com
em ~ / .profile deve resolver seu problema.
PS Após essas correções, é necessário RELOGIN na sua sessão para permitir que as alterações se tornem visíveis.
fonte