[RESOLVIDO]Alteração de charset no ambiente de produção

Amigos, preciso de ajuda!. Verifiquei hoje num cliente, que usa projeto em SC8, que os caracteres acentuados estavam todos bagunçados. Ele não havia me informado ainda alegando que conseguia entender! Verificando nos outros clientes observei que ocorria o mesmo. Ao tentar mudar o charset no ambiente de produção para utf8, conforme sugestão do amigo Jailton no tópico: http://www.scriptcase.com.br/forum/index.php/topic,7973.msg38705.html#msg38705… Não muda! Testando nos meus outros projetos notei o mesmo. Notem que no ambiente de desenvolvimento tudo certo, mas no ambiente de produção necas!

Os procedimentos adotados foram:
. Republiquei o ambiente de produção;
. Na configuração do DB no ambiente de produção tentei alterar o client_encoding nos três modelos Mysql (PDO, transacional e puro);
. Conforme minhas pesquisas o charset ideal para o MySql e php5.4 é o utf8;
. Não tive tempo ainda de testar no SC7.

Alguém passando por isso?! Alguma sugestão?!
Modificar mensagem

Minhas configurações: SC8 v024 shared host linux e MariaDB (mysql);

Pessoal da NM, essa alteração necessita de alguma configuração no meu host? Vocês mencionaram no changelo 017 a correção “do problema na configuração do charset, no ambiente de produção, para conexão MySQL PDO”, caso seja isso, continua o problema!

O apache tem uma configuração de charset padrão que normalmente causa problemas nas publicações.

Obrigado Saulo, mas como a hospedagem é compartilhada não posso alterar as configurações do Apache, então não há solução?!

Olá Moraisjsm, bom dia.

De fato na release 017 houve esta correção para o tipo de conexão “MySQL PDO”. Poderia me enviar uma cópia de um de seus projetos, juntamente com dump a base dados, para que sejam realizados alguns testes específicos?

Outro ponto que vale ressaltar, o mesmo problema ocorre quando publicas de modo típico?

Aguardo o seu retorno, segue meu email: c.vinicius@netmake.com.br

Moraisjsm,

Para mim funcionou quando no ambiente de produção, nas configurações da conexão, quando eu selecionava UTF8 não dava certo… mas por mais esquisito que pareça… quando escolhi a primeira opção (em branco) tudo voltou a funcionar…antes estava ok entendeu… na atualização bugou… então fiz assim e voltou a ficar ok… Mas o estranho é que selecionando o que deveria de ser UTF8, não ficava ok, por causualidade selecionei o em branco e ai funcionou, digo voltou a ficar ok.

Tem que ver tb as diferenças por browser… no Chrome vai de uma forma no IE de outra… é horrivel mesmo essa encrenca.

Att,
Marco

Marco, não entendi bem o seu post! O fato é que o ambiente de produção dos meus projetos não aceita modificação. Permanece sempre no padrão latin1. Após selecionar qualquer uma das opções do combobox “client_encoding” na aba advanced, no menu editar conexão existentes, concluir e retornar, está lá o bendito latin1! Caio vou juntar o que me pediu e enviarei um e-mail detalhado. Obrigado Marco e Caio.

Ok Moraisjsm, fico no aguardo.

Caio, enviei o e-mail. Galera, após resposta posto aqui os resultados.

Estou com o mesmo problema, alguma novidade?

[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.

Bom dia,
mude a diretiva default_charset string no php.ini
https://www.scriptcase.com.br/forum/index.php/topic,10911.0.html

O problema Alexandre é que na maioria dos host compartilhados não temos acesso ao PHP.INI.

mas não tem acesso ao .htacess ou ao php em tempo de execução?
No php em tempo de execução, basta mudar as diretivas.

Fiz isso que o Fred fez, porém, no meu caso, os dados vão pro banco de dados sem os acentos.

Alguém sabe uma saída, por favor?

Meu ambiente de produção é Linux com as seguintes configurações:

Apache 2.2.25
PHP 5.2.17
MySQL 5.5.38-35.2

veja o charset da tabela em questão…

No lugar dos acentos aparecem interrogação? Se sim use o “utf8_encode” na variável que vem do banco.

Ainda acredito que isso é um BUG. Esperar a NM se manifestar pra ao menos dizer o que pode esta ocorrendo, pois do nada ficou assim. E charset é uma coisa que só se muda uma vez na vida ao desenvolver um projeto.

Willian,

Charset das tabelas do MySQL (COLLATE) = ‘latin1_swedish_ci’.

Aplicações no ScriptCase coloquei manualmente tudo em “Western (ISO-8859-1)”.

Qual solução você sugeria?

Agradeço.

Fred,

No lugar dos acentos aparecem interrogação.

Você segure colocar “utf8_encode” diretamente no banco, na aplicação do ScriptCase ou outro local?

Eu estou usando o utf8_encode nas aplicações blank. Pois são elas que estão com essa frescura de charset.
O problema que tenho em torno de 90 relatórios todos feito em TCPDF no blank. Do nada, depois da atualização que fiz do SC os charset se comportou assim! Mas isso só acontece no meu ambiente de desenvolvimento, no servidor tudo ok.

Também esse problema pode ser as últimas atualizações do SO, que no meu caso é o Linux 15.04.

Resolvi meu problema alterando o CHARSET das aplicações para UTF-8.

Obrigado, Fred!