Filtro do CGridView

Olá a todos,

Seguinte setei todo meus sistema para iso-8859-1.

.htaccess




AddDefaultCharset iso-8859-1

...



config/main.php




return array(

    ...

    'charset' => 'ISO-8859-1',

...

'db' => array(

...

'charset' => 'latin1',

...



modules/admin/views/layouts/main.php




...

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo Yii::app()->charset?>" />

...



Na listagem dos produtos tem um produto de teste: ‘Produto01 ã’

Quando eu faço a consulta que é ajax pelo caracter (ã), ele me retorna ‘ã’ e não retorna o ‘Produto01 ã’.

Ja mudei quase tudo para utf-8 e em algum caso da certo, mais alguns itens da página fica desconfigurado.

Quando eu seto para utf8, o texto Configuração, fica desconfigurado, digamos que o banco de dados funciona, mais o HTML fica desconfigurado.

Algume já passou por isso?

O banco de dados e latin1_general_ci (MyISAM).

Valeu!

ajax é complicado o encoding … tente usar se for ajax request a função utf8_encode ou decode do php, nao lembro qual das 2 funciona certo

Gustavo,

Ja tentei usar elas na function search() que é usado por padrão no Model e sem sucesso. o problema e o json_encode do próprio framework php.

Já tive problemas semelhantes a esse!

Resolvi de outro modo, tem um wiki que explica o por que de usar tudo UTF-8.

http://www.yiiframework.com/wiki/16/how-to-set-up-unicode/

Até ate tudo bem, o complicado e quando usamos texto estático, tipo de menu (Administração e Configurações), os caracteres especial fica desconfigurado.

Como meu sistema de Administração de site institucional algumas coisas há alteração, fiz um arquivo de tradução, e mantive essas palavras lá, só que foi preciso usar utf8_encode();

‘setting’ => utf8_encode(‘configuração’),

Ai conseguir fazer a busca funcionar, e tudo que eu adicionar no banco de dados vai como acentos (áéíóú) normal, e na hora de resgatar esses valores não preciso tratar.

Configuração:

.htaccess


AddDefaultCharset utf-8

protected/config/main.php




...

'charset' => 'utf-8',

...

'db' => array(

            'connectionString' => 'mysql:host=localhost;dbname=fcg',

            'emulatePrepare' => true,

            'username' => 'username',

            'password' => '*********',

            'charset' => 'utf8',

        ),



Esse charset e para usarem nos <head> de cada layout

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo Yii::app()->charset?>" />

E atentão muito com caracteres estático, tipo caso for digitar usando caracteres especial usa as ‘encodadas’ ‘&aacute;’ e por ae vai.

Se alguem tiver uma solução sobre isso, de não ter que ficar digitando em texto estático: ‘Configuração’ ao invés de ‘Configura&ccedil;&atilde;o’, seria mais viavel e rápido.

Cara, se está dando este problema com textos estáticos, veja a codificação dos seus fontes.

Daniel,

O texto estático estavam normal, o <head> do html estava com iso-8859-1, e o texto estavam com acentuação se, decodificação, por exemplo:

Normal: Configuração

Alterado para: utf8_encode(‘Configuração’).

Coloquei utf8_encode(), por que coloquei quase todos os texto estático em inglês e usei Intercionalização.

Ai não tive problema, mais se eu deixa-se normal (Configuração) o (çã) aparecia com erro(:diamonds:) de codificação.

Mais já resolvi, to usando tudo com utf-8.

Pessoal estou com um problema , meu menu vem do banco de dados , e não consigo inserir nomes com caracter especial , tipo , música fica m?sica quando mando enviar para o banco de dados , ja tentei de tudo , mas não sei o que esta havendo =/ , ajuda ai por favor.

sim , e se alterar para música no banco de dados ele retorna com erro também =/

na config


return array(

	'name'=>"Sistema",

	'charset'=>'iso-8859-1',

e em qualquer lugar que execute em toda requisição (eu uso no evento onBeginRequest)


header("Content-type:text/html; charset=".Yii::app()->charset);

pois vai executar mesmo se a página não use layout (em requisições ajax por exemplo)

no layout tambem uso


<meta http-equiv="Content-Type" content="text/html; charset=<?php echo Yii::app()->charset?>" />

pra garantir, mas acredito que os 2 primeiros só já dão conta

Meu problema foi resolvido passando tudo para o padrão do framework, utf-8.

No caso de texto estático nos HTML, usar o utf8_encode(). Nos dados que for inserir e retornar no banco não tem problema, ele adiciona e retorna com acento, sem precisar usar encoders.

quando utilizo o utf-8 no banco de dados retorna ok os bancos de dados com acento , porém se utilizo o iso-… o texto html estatico fica bugado -.-

CONCERTEI , COLOQUEI NO MAIN ‘charset’ => ‘utf-8’, , e no BD ‘db’=>array( … ‘charset’ => ‘utf8’,