sexta-feira, 25 de julho de 2008

Problemas com acentuação no Flex utilizando AMFPHP

Estou desenvolvendo meu projeto de Monografia, utilizando Flex com a linguagem PHP para acesso a Base de Dados PostgreSQL. No entanto, para realizar a comunicação entre o Flex e o PHP utilizo uma alternativa Open-Source que permite o uso da tecnologia Flash Remoting em servidores que utilizam o PHP sem a necessidade de instalação de nenhum recurso adicional no servidor em si, chamada AMFPHP.

No decorrer do desenvolvimento desse projeto me deparei com um problema de acentuação nos dados que retornavam para o Flex após uma consulta na Base de Dados. Pensei que fosse alguma configuração no "charset" do PHP ou do Apache. Conversando com meus colegas de profissão nos ocorreu a idéia de que o AMFPHP poderia ter também alguma configuração de "charset", e realmente tinha.

A seguinte linha no arquivo gateway.php que se encontra dentro do diretório do AMFPHP esta comentada:

//$gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");

tiramos o comentário e salvamos o arquivo ficando assim:

$gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");

no meu caso ja tinha a linha comentada se no seu caso a linha não estiver no arquivo basta inseri-la no mesmo.

5 comentários:

Unknown disse...

Já tive esse problema com o Java/Postgre/Flex. Consegui resolver. Neste momento estou tentando resolver outro. Você já testou o seu projeto no Ubuntu? Os mesmos problemas de acentuação estão ocorrendo. porem apenas na interface, no momento que se usa a acentuação, por exemplo, em um TextInput.

Unknown disse...

Bom Leandro, já testei sim o projeto no Ubuntu, aqui onde trabalho usamos justamente está distribuição Linux e usamos também o PostgreSQL.
Uma vez enfrentei um problema de acentuação e resolvi da seguinte forma: eu criava todos os bancos de dados com encoding "latin1" então resolvi testar a criação de um banco com encoding "utf8" e funcionou...

Unknown disse...

Mas pelo que entendi, o Leandro teve o mesmo prob que eu, e n tem a v com banco de dados, uma simples tela em flex, sem qq conexão, dá esse problema.

Raphael Bruno 2.0 disse...

Eu estava procurando uma solução, tentei muita coisa, não pensei como você, que o problema poderia está no AMFPHP... Bom, com sua dica eu resolvi o meu problema, mas foi justamente o contrario, para funcionar eu comentei a linha. XD

Raphael Bruno 2.0 disse...
Este comentário foi removido pelo autor.