Autor Tópico: Problema acentuação no navegador e php > 5.4 com padrão utf8  (Lida 2272 vezes)

Alexandre Pereira Bühler

  • Expert
  • *****
  • Mensagens: 1637
  • Nunca estabeleça um teto para os seus rendimentos.
    • Simão & Bühler Ltda
    • Email
Problema acentuação no navegador e php > 5.4 com padrão utf8
« Online: Maio 19, 2015, 09:53:42 am »
Bom dia,
Tive o prazer de aprender isto na prática e após RTFM.

Sintomas: No navegador aparecia caracteres estranhos das informações trazidas do banco.

Padrão: Página com header determinando padrão iso-8859-1, banco de dados em iso-8859-1, apache, php 5.5, Mariadb 10.

Solução:
Fiz o ajuste de charset no servidor web tanto para utf8 quanto iso-8859-1, mesmo erro de charset no navegador.
Fiz ajuste na conexão ao banco mysql tanto para utf8 quanto iso-8859-1, mesmo erro de charset no navegador.
Após incontáveis horas notei que ao exibir o código fonte renderizado no navegado sempre vinha em utf8.
Fiz um RTFM no manual do php a procura de mudanças.
Achei isto no core do php:

"default_charset string:    In PHP 5.6 onwards, "UTF-8" is the default value and its value is used as the default character encoding for htmlentities(), html_entity_decode() and htmlspecialchars() if the encoding parameter is omitted. The value of default_charset will also be used to set the default character set for iconv functions if the iconv.input_encoding, iconv.output_encoding and iconv.internal_encoding configuration options are unset, and for mbstring functions if the mbstring.http_input mbstring.http_output mbstring.internal_encoding configuration option is unset.

    All versions of PHP will use this value as the charset within the default Content-Type header sent by PHP if the header isn't overridden by a call to header().

    Setting default_charset to an empty value is not recommended."

Ou seja agora vem habilitado no php.ini a diretiva "default_charset string".
Ela estava como utf8 que é o valor default.
E pelo visto à partir do php 5.6 algumas funções irão trabalhar como padrão utf8.
Ou seja se quiser usar iso-8859-1 nestas funções tem que especificar.
E não é bom deixar desabilitado esta diretiva segundo o manual do php.
Mesmo, assim desabilitei o default_charset string no php.ini e o navegador apresentou os acentos corretamente.

Moral da história: Ou você migra agora para utf8 ou mais tarde terá que mexer no seu código fonte para que algumas funções apresentem o caractere correto.
Espero ser útil há algum de vocês.

--
Alexandre Pereira Bühler
https://www.simaoebuhler.com.br
Hospedagem compartilhada Scriptcase desenvolvimento e produção. Temos servidores dedicados Scriptcase.
Eu RTFM todo dia e você?

Kleyber

  • Expert
  • *****
  • Mensagens: 2235
    • Email
Re:Problema acentuação no navegador e php > 5.4 com padrão utf8
« Responder #1 Online: Maio 19, 2015, 05:26:43 pm »
Importante observação, Alexandre. Valeu por compartilhar.
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Problema acentuação no navegador e php > 5.4 com padrão utf8
« Responder #2 Online: Maio 19, 2015, 06:10:02 pm »
Show de bola Alexandre. Nem sabia que isso ("default_charset string") existia.

Eu estou com um problema semelhante porém com particularidade.

No ambiente de desenvolvimento, esta tudo funcionando. Ao publicar os dados do banco vem todos desconfigurados. Fiz a comparação entre os dois bancos (desenvolvimento e produção) e esta a mesma coisa. Vale salientar que estava sempre funcionando. Foi só eu atualizar pra versão mais nova do SC que esta dando esse problema ao fazer upload da publicação.
F. A.
Analista de Sistemas

Celso R.

  • Expert
  • *****
  • Mensagens: 941
Re:Problema acentuação no navegador e php > 5.4 com padrão utf8
« Responder #3 Online: Maio 19, 2015, 06:27:43 pm »
É colegas de trabalho coisas do além acontece.....
Veja o que acontece comigo a app estava funcionando normal. Fiz atualização do SC gerei e subi as app's para minha surpresa tudo bangunçado os acentos.
Cada app estava definida como iso-8859-1 e o projeto também. Agora retirei todas as referencias das 150 app's do charset deixei em branco só faço referência do charset nas valores padrões do projeto como iso-8859-1. Pois bem Algumas app's ficam com caracteres estranhos e utras não. Agora tenho que verificar quais estão dando problemas e setar o valor também dentro da app's como isso-8859-1. O que fazer?
Celso R.
________________________________
SC - V 8

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Problema acentuação no navegador e php > 5.4 com padrão utf8
« Responder #4 Online: Maio 19, 2015, 06:41:35 pm »
Eu acho que é um BUG... estou tentando resolver tbm... se achar solução posto aqui. NM deveria dar atenção a isso, apesar que eu não tenho certeza se é Bug, porém esta aparecendo MUITA gente com o mesmo problema.
F. A.
Analista de Sistemas

Celso R.

  • Expert
  • *****
  • Mensagens: 941
Re:Problema acentuação no navegador e php > 5.4 com padrão utf8
« Responder #5 Online: Maio 19, 2015, 07:16:17 pm »
Acredito que seja bug. Se eu setei para iso-8859-1 porque devo fazer de novo dentro da app?
Celso R.
________________________________
SC - V 8

Alexandre Pereira Bühler

  • Expert
  • *****
  • Mensagens: 1637
  • Nunca estabeleça um teto para os seus rendimentos.
    • Simão & Bühler Ltda
    • Email
Re:Problema acentuação no navegador e php > 5.4 com padrão utf8
« Responder #6 Online: Maio 19, 2015, 08:05:07 pm »
Se o caso for configuração de ambiente nem adianta a netmake olhar.
Isto é dever do desenvolvedor ou mantenedor do servidor.
Tem que configurar no apache/nginx, no mysql e agora também no php.ini.
--
Alexandre Pereira Bühler
https://www.simaoebuhler.com.br
Hospedagem compartilhada Scriptcase desenvolvimento e produção. Temos servidores dedicados Scriptcase.
Eu RTFM todo dia e você?

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Problema acentuação no navegador e php > 5.4 com padrão utf8
« Responder #7 Online: Maio 19, 2015, 11:04:16 pm »
Se o caso for configuração de ambiente nem adianta a netmake olhar.
Isto é dever do desenvolvedor ou mantenedor do servidor.
Tem que configurar no apache/nginx, no mysql e agora também no php.ini.

Uma coisa é garantida, ambiente no meu caso não mesmo. Pois estava sempre funcionando, não cheguei a atualizar nada no ambiente.
F. A.
Analista de Sistemas

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Problema acentuação no navegador e php > 5.4 com padrão utf8
« Responder #8 Online: Maio 20, 2015, 12:18:08 am »
[Resolvido]
Seguinte, para resolver, eu fui em: "Banco de dados" -> "Editar conexão" -> na aba "Avançado" eu mudei de "utf8" (tava padrão) para "latin1".
Depois fui em todas as minhas aplicações e no charset coloquei: Western (ISO-8859-1).

Resolveu de boa. E não precisei mexer em nada no meu servidor.
F. A.
Analista de Sistemas

Alexandre Pereira Bühler

  • Expert
  • *****
  • Mensagens: 1637
  • Nunca estabeleça um teto para os seus rendimentos.
    • Simão & Bühler Ltda
    • Email
Re:Problema acentuação no navegador e php > 5.4 com padrão utf8
« Responder #9 Online: Maio 20, 2015, 11:25:52 am »
Fred
Você fez a segunda opção que falei. mudou o charset da conexão.
Somente que ao invés de mudar de forma estática no my.cnf/my.ini.
Mudou de forma dinâmica na aplicação.
--
Alexandre Pereira Bühler
https://www.simaoebuhler.com.br
Hospedagem compartilhada Scriptcase desenvolvimento e produção. Temos servidores dedicados Scriptcase.
Eu RTFM todo dia e você?

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Problema acentuação no navegador e php > 5.4 com padrão utf8
« Responder #10 Online: Maio 20, 2015, 09:56:47 pm »
Eu ainda acho que é um Bug, pois antes funcionava perfeitamente e nunca alterei nada. Depois da última atualização esta com esse bug. Ficamos ansiosos esperando que as atualizações tragam coisas boas (consertos, novas implementações, etc..) mas esta ocorrendo ao contrário. 
F. A.
Analista de Sistemas

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Problema acentuação no navegador e php > 5.4 com padrão utf8
« Responder #11 Online: Maio 20, 2015, 10:25:01 pm »
Parece que por padrão na instalação do SC o default_charset string já vem desabilitado. Verifiquei isso hoje. Isso no ambiente de desenvolvimento.
F. A.
Analista de Sistemas

Alexandre Pereira Bühler

  • Expert
  • *****
  • Mensagens: 1637
  • Nunca estabeleça um teto para os seus rendimentos.
    • Simão & Bühler Ltda
    • Email
Re:Problema acentuação no navegador e php > 5.4 com padrão utf8
« Responder #12 Online: Maio 20, 2015, 11:07:45 pm »
No php 5.4 ele vem desabilitado, somente no php 5.5 e 5.6 ele vem habilitado por padrão.
Por isto assunto no post php > 5.4
--
Alexandre Pereira Bühler
https://www.simaoebuhler.com.br
Hospedagem compartilhada Scriptcase desenvolvimento e produção. Temos servidores dedicados Scriptcase.
Eu RTFM todo dia e você?

Ewerton

  • Novato
  • *
  • Mensagens: 24
    • Email
Re:Problema acentuação no navegador e php > 5.4 com padrão utf8
« Responder #13 Online: Maio 21, 2015, 12:47:29 pm »
Fred,

Existe uma maneira de habilitar o 'default_charset string' no ScriptCase?

Fui em propriedades do projeto e alterei lá o charset.

Existe outro local para padronizar?

Parece que por padrão na instalação do SC o default_charset string já vem desabilitado. Verifiquei isso hoje. Isso no ambiente de desenvolvimento.
Ewerton Araujo
Analista de Sistemas

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Problema acentuação no navegador e php > 5.4 com padrão utf8
« Responder #14 Online: Maio 21, 2015, 02:22:41 pm »
Se você usa linux...

Comando no Terminal:

gedit opt/NetMake/v8/components/apache/conf/php.ini

procure por default_charset string e é só tirar o ";" do inicio.

Mas acredito que isso não vá resolver! Eu testei com ele habilitado e desabilitado e não resolveu. Teste ai!
F. A.
Analista de Sistemas