Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Prado

[Resolvido] Doctrine - Problema Charset UTF8

Recommended Posts

Boa noite!

 

Estou com um problema quanto a codificação utf-8.

 

1 A minha base de dados está com o charset utf8 e collation

utf_general_ci.1

2 Todas as minhas tabelas do meu arquivo yaml (do qual o modelo foi

gerado) possuem o parâmetro:

options:

collate: utf8_unicode_ci

charset: utf8

3 No meu bootstrap.php eu utiizo os parâmetros abaixo para setar o

charset.

$manager->setCollate('utf8_unicode_ci');

$manager->setCharset('utf8');

4 Na minha página web que retorna os dados está com a seguinte

identificação na tag head:

<meta http-equiv="Content-Type" content="text/html;

charset=utf-8" />

5 Os dados da minha tabea do banco de dados foram inseridos com

utf-8.

 

E quando vou dar um print na tela de um atributo do objeto aparece

(Analista Júnior) assim:

Analista J nior

 

Já tentei mudar o charset de visualização no Firefox mas não deu

certo.

 

Será que alguém pode me ajudar o que falta eu fazer pra que isso

funcione corretamente??

Teste com outras tabelas e modelos e o problema continua.

 

Obrigado

 

Rodrigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça a seguinte query depois de abrir conexão:

 

mysql_query("SET NAMES utf8", $link);

Detalhes link

 

Tenta aí...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça a seguinte query depois de abrir conexão:

 

mysql_query("SET NAMES utf8", $link);

Detalhes link

 

Tenta aí...

 

Willian, o doctrine não trabalha com o driver mysql nativo do PHP. Ele utiliza o PDO.

Mas mesmo assim, obrigado pela resposta!

Compartilhar este post


Link para o post
Compartilhar em outros sites

mysql_query("SET NAMES utf8", $link);

Willian, o doctrine não trabalha com o driver mysql nativo do PHP. Ele utiliza o PDO.

 

Versão PDO para a sugestão do William:

 

$pdo = new PDO( 'mysql:host=host;dbname=bancodedados' , 'usuario' , 'senha' , array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' ) );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço a resposta também João, mas o Doctrine faz a conexão "internamente", não funciona desta forma.

 

To com o mesmo problema

pior que nao acho resposta em lugar nenhum

 

você chegou a descobrir como que faz para solucionar o problema??

 

eu sei que se usar o utf8_encode resolve

só que é muito chato ficar chamando isso pra qualquer chamada do mysql

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui!!

Finalmente consegui e vim compartilhar com vcs

 

https://groups.google.com/forum/?fromgroups#!topic/doctrine-user/zRzo_u-jX34

 

nesse link aee

um dos últimos posts respondeu minha pergunta

=D

 

O meu antes tava assim

       $manager->setCollate('utf8_unicode_ci');
       $manager->setCharset('utf-8');

 

só que o setCharset não deve ficar em $manager e sim na variável de conexão

 

try {
// Insira aqui os dados de sua conexão
$conn = Doctrine_Manager::connection('mysql://root:minhasenhalocal@localhost/database');
$conn->setCharset('utf8'); // AQUI ESTÁ A SOLUÇÃO!!! xDDDDDD

$manager->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING, Doctrine_Core::MODEL_LOADING_CONSERVATIVE);
$manager->setAttribute(Doctrine_Core::ATTR_EXPORT, Doctrine_Core::EXPORT_ALL);

       $profiler = new Doctrine_Connection_Profiler();
       $manager->setListener($profiler);
   }
   catch (Doctrine_Manager_Exception $e) {
print $e->getMessage();
   }

 

finalmente!! haha

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.