jeffestanislau
(usa Debian)
Enviado em 30/01/2017 - 17:20h
Boa tarde,
Estou com um problema bem estranho e preciso de ajuda pra resolver.
O caso é o seguinte, estou atualizando um sistema web/php que já tinha uma base pronta, desta forma, utilizei os dados tabelas já existente, e algumas mais novas.
Tabelas antigas estão neste formato:
InnoDB utf8_general_ci
ENGINE=InnoDB DEFAULT CHARSET=utf8
Tabelas novas neste:
MyISAM utf8_general_ci
ENGINE=MyISAM DEFAULT CHARSET=utf8
Perceba que as tabelas estão usando o CHARSET utf8 e COLLATE utf8_general_ci, o tipo que está diferente: InnoDB e MyISAM
PROBLEMA:
* Quando executo a query nos dados cadastrados, ao puxar os dados da tabela antiga, os caracteres acentuados aparecem com símbolos, por exemplo: Cont�bil
* Porém, a query nas tabelas novas, os acentos aparecem normalmente: Contábil
Fazendo uma pesquisa, utilizei os comandos abaixo, para fazer o acerto da acentuação na chamada da tabela antiga.
mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_results=utf8");
Isso acertou o problema do acento na tabela antiga, porém, após rodar esse comando, os acentos que apareciam normalmente na tabela nova agora aparecem com símbolos, isto é, o problema se inverteu.
Observação: Não posso, modificar a estrutura das tabelas e colocar tudo no mesmo padrão, pois tem outras funções rodando no sistema antigo que utilizam essas tabelas, e estas ainda não foram atualizadas. Assim, se eu modificar, pode afetar outras partes.
Pergunta: Então, como fazer a chamada da tabela antiga, de forma que seus caracteres sejam corrigidos, sem afetar os caracteres da tabela nova?