Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
16
respostas

Acentuação no git log -p

ao digitar git log -p para visualizar o histórico, as linhas alteradas do arquivo index.html aparecem com uma marcação <E7><E3> no lugar de "çã" de "integração" e <ED> no lugar de "í"de "contínua". Há alguma configuração de acentuação do Git? Como resolver?

16 respostas

Olá Rodrigo, tudo bem? Primeiramente qual o terminal você está utilizando? É o próprio CMD do Windows é isso? Se for, então recomendo você utilizar o Git Bash, e sobre esse problema, mesmo estando no Windows o Git precisa de algumas variáveis de ambiente do Linux, então para isso você tentar executar o seguinte comando no terminal:

set LC_ALL=C.UTF-8

Esse comando vai setar a linguagem com codificação do sistema como "UTF-8", que é a codificação padrão, que pode não ter sido aplicada por algum motivo. Depois você pode executar novamente o git log. Se não funcionar, informa aqui pra gente poder analisar e verificar outras alternativas!

Jonilson, estou utilizando o Git Bash no Windows 10. Tentei o comando, mas não surtiu efeito.

Rodrigo, você pode executar esse comando no Git Bash:

git config --global i18n.logOutputEncoding utf-8

E depois executar o git log novamente, o comando acima é pra definir qual a codificação de saída do git log. Informa pra gente se funcionou!

Infelizmente o problema persiste.

Olá Rodrigo tenta esses comandos:

git config [--global] core.quotepath off
git config [--global] i18n.logoutputencoding utf8
git config [--global] i18n.commitencoding utf8
git config [--global] --unset svn.pathnameencoding

se for algo pontual pode usar:

git commit -m "UTF-8 conversion"

Obrigado pela ajuda, mas também não funcionou.

Olá Rodrigo, isso acontece no Terminal Git Bash? Pode verificar que isso acontece no terminal nativo do Windows o Prompt de Comando (CMD), já no no Git Bash está normal, pode informar isso pra gente!

Bom dia Jonilson. Tentei usar no Prompt do Windows tb (CMD) e não deu certo. No Git Bash tb dá erro.

Rodrigo, você poderia tirar uns prints dos erros e colocar no Google Drive e compartilhar o link aqui pra gente poder acessar e verificar corretamente esse problema!

Jonilson, segue o link da tela quando dou o comando git log -p. https://drive.google.com/drive/folders/1uE3yjL4QIAGkU9orFFhwMuF4BbMjso8a?usp=sharing

Muito estranho mesmo, mas estou muito empanhado em conseguir descobrir o porque isso está acontecendo, então você poderia executar o seguinte comando no terminal do Windows, no CMD mesmo:

chcp 65001

E depois executar o comando git log -p. Se ainda estiver do mesmo jeito, execute o comando:

chcp 1252

E tente executar o comando git log -p novamente. Se um dois dois tiver funcionado corretamente, então você pode tentar executar o comand no Git Bash, porém nele é necessário usar o comando da seguinte forma:

chcp.com 65001

Fala pra gente o resultado!

Infelizmente não surtiu efeito. Interessante notar que o nome do Autor "Pavão" aparece com ~ no GIT Bash e em código <C3><A3>no CMD. Acho que vou reinstalar o Git Bash e fazer td desde o início pra ver se resolve. Depois eu posto se funcionou.

Realmente é bastante estranho, porque no caso não deveria mostra nenhuma acentuação. Mas vamos continuar tentando outras alternativas, a primeira é você executar os passos:

  • Execute o seguinte comando no terminal (CMD):

    setx LC_ALL C.UTF-8
  • Depois execute o comando no terminal (CMD) ou no Git Bash:

    git config --global i18n.logOutputEncoding utf-8
  • Agora você deve abrir o Git Bash (se não tiver aberto) Clicar com o botão direito do mouse em qualquer lugar no Git Bash e depois clicar no item Options...: Abrir Options

  • Depois ir no menu Text e alterar o Locale para pt_BR e também o Character set para UTF-8 e por fim clicar no botão Save: Alterar Locale e Character set

  • Depois você pode executar o comando git log -p, se ainda persistir o erro, feche todos os terminais e abra novamente e execute o comando de novo.

E fala pra gente qual foi o resultado!

Infelizmente não funcionou.

solução!

Rodrigo, você pode executar o comando abaixo (execute dentro da pasta do projeto) e falar pra gente qual foi o resultado:

locale

Execute também o comando:

git config i18n.commitEncoding

E fala pra gente qual foi o resultado dele também. E por fim, você poderia executar o comando:

git log -p --encoding=UTF-8

E falar qual foi o resultado.

Porque o que me passa agora é que os commits antigos ficam com a codificação que foram criados anteriormente permanecem com a codificação antiga, já que a mesma é determinada no momento da criação do commit. Então você poderia criar um commit qualquer e tentar executar o comando git log -p novamente.

Jonilson, vc não vai acreditar. O problema era o editor que estava usando para alterar o arquivo html. Ele estava com outra codificação. Daí nunca que iria aparecer os acentos. Depois que alterei para UTF-8 e corrigi a acentuação, a correção apareceu de boa próximos commits. Muito obrigado, e desculpe pela dor de cabeça. Pelo menos aprendemos novos códigos para alterar codificação do terminal.