Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Caracteres especiais

Olá, no outro curso eu fiz a instalação do php em outra máquina e os caracteres especiais estavam aparecendo normalmente no cmd, mas agora eu instalei em outra máquina e fui revisar os últimos exercícios e nessa não está aparecendo acentos.. o que pode ter acontecido? Uma observação é que a outra máquina era win 10 e essa é win 7, pode ter alguma relação?

6 respostas

Olá Andréia!

Quando ao sistema operacional, não deve ter relação com o problema, tendo em vista que o Windows 7 que você está utilizando agora também esteja com a codificação UTF-8. Mais você poderia verificar as configurações de codificações do próprio PHP, para isso você pode abrir o arquivo php.ini-development dentro da pasta de instalação do PHP, e buscar a linha "default_charset = " e verificar se o valor está "UTF-8" :

default_charset = "UTF-8"

Espero que tenha ajudado!

já estava utf-8 sim: " PHP's default character set is set to UTF-8. ; http://php.net/default-charset default_charset = "UTF-8" " ;(

Andréia, o terminal não está aceitando acentos somente nos comandos PHP? Ou não está aceitando caracteres especiais de forma alguma? Porque assim podemos saber se o problema é no terminal do windows ou se é apenas nos comandos PHP, e outra alternativa é tentar com um terminal diferente, você poderia tentar instalar um outro terminal e verificar se acontece o mesmo.

é só no php mesmo..

Andréia, esse problema acontecia geralmente nas versões do PHP anteriores a versão 7.1, então você sabe dizer se essa máquina tinha uma versão antiga do PHP instalado? Outra alternativa é mudar o encode do Windows, já que algumas versões do windows 7 não tinham suporte para UTF-8, você pode usar o comando abaixo dentro da pasta de instalação do PHP:

chcp 65001

Esse é o comando que era utilizado para alterar a codificação UTF-8 no windows.

solução!

Olá Andréia!

Dei uma pesquisa e conseguir resolver esse problema aqui na minha máquina, e não pude deixar de falar aqui. Seguindo a lógica da minha resposta anterior, usado o chcp, o interactive shell do PHP é independente do terminal do windows, assim se você executar o comando:

chcp

No terminal do windows você verá o seguinte retorno: "Página de código ativa: 850", e essa página para o "Multilíngue (Latino I)" e o mesmo não tem suporte a caracteres acentuados, portanto é necessário alterar essa página de código para a 860 que é a Português. Para isso podemos executar:

chcp 860

Porém esse comando deve ser executado dentro do shell do PHP, então primeiro execute o comando "php -a" e depois "chcp 860", e a acentuação vai ser aceita normalmente!

Espero ter ajudado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software