Olá pessoal estou começando agora com o Yii e estou com um problema de charset. Tenho uma aplicação que importa um planilha excel e salva no banco mysql, em uma tabela que esta com o charset definido como Latin1. O problema é quando no php eu consigo dar um utf8_decode e fazer a string ficar em utf8, dai quando vai salvar no banco da erro nas palavras acentuadas. Ja tentei usar o iconv('UTF-8','LATIN1',$str) mesmo forçando a conversão de para Latin1 a string é salva em um charset diferente no qual não reconhece acentuação.
Na aplicação também existe a opção de inserir na mesma tabela através de um form, e quando é feito inserção ou update pelo form não da erro charset ou seja os acentos aparecem corretamente.
Alguém por favor pode me ajudar ??
Desde já grato
Page 1 of 1
Erro De Charset UTF-8 x LATIN1
#2
Posted 23 October 2012 - 11:55 AM
Uma das soluções que encontrei aqui no forum é alterar o charset no main para 'latin1', porém estou com duvida pois quando faço um insert através de um $form passando pelo actionInserir as informções são inseridas normalmente sem erro de codificação, se eu altera o charset no main será que vai mudar alguma coisa nas outras parte da aplicação ?
'db' => array(
'connectionString' => 'mysql:host=localhost;dbname=myDataBase',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'enableProfiling' => YII_DEBUG,
'enableParamLogging' => YII_DEBUG,
),
'db' => array(
'connectionString' => 'mysql:host=localhost;dbname=myDataBase',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'enableProfiling' => YII_DEBUG,
'enableParamLogging' => YII_DEBUG,
),
#3
Posted 23 October 2012 - 06:46 PM
Fernando,
Já houve o questionamento dos acentos no framework, nas CListView e CGridView, para evitar de ficar usando o utf8_decode()/utf8_encode(), deixa toda a aplicação setada como utf-8.
Se você tiver usando algum IDE, defini nas configurações para todos os arquivos abertos seja convertido para utf-8.
Eu uso o netbeans e ele tem essa definição, assim você não terá problemas de adicionar palavras acentuadas ou caracteres especial diretamente no código fonte e no banco de dados.
Já houve o questionamento dos acentos no framework, nas CListView e CGridView, para evitar de ficar usando o utf8_decode()/utf8_encode(), deixa toda a aplicação setada como utf-8.
Se você tiver usando algum IDE, defini nas configurações para todos os arquivos abertos seja convertido para utf-8.
Eu uso o netbeans e ele tem essa definição, assim você não terá problemas de adicionar palavras acentuadas ou caracteres especial diretamente no código fonte e no banco de dados.
Newerton Vargas de Araújo
#4
Posted 25 October 2012 - 06:15 AM
[RESOLVIDO]
Bom dia!!!
Obrigado pela dica, porém eu não quis alterar o código pois é de um site que peguei para dar manutenção... Mas enfim consegui encontrar o ponto de falha, é o seguinte quando eu exporto para excel(Eexcelview) tudo é exportado em UTF-8, então se o usuario fizer a importação da planilha sem alterar nada basta eu dar um utf8_decode e em seguida um utf8_encode novamente, porém se o usuario mudar alguma coisa no arquivo pode ser que o aplicativo de leitura .xls altere o charset então eu simplesmente dou um uft8_encode, fazendo exatemente isso não tive mais problemas!!!
Fica a dica!! Obrigado a todos...
Bom dia!!!
Obrigado pela dica, porém eu não quis alterar o código pois é de um site que peguei para dar manutenção... Mas enfim consegui encontrar o ponto de falha, é o seguinte quando eu exporto para excel(Eexcelview) tudo é exportado em UTF-8, então se o usuario fizer a importação da planilha sem alterar nada basta eu dar um utf8_decode e em seguida um utf8_encode novamente, porém se o usuario mudar alguma coisa no arquivo pode ser que o aplicativo de leitura .xls altere o charset então eu simplesmente dou um uft8_encode, fazendo exatemente isso não tive mais problemas!!!
Fica a dica!! Obrigado a todos...
Share this topic:
Page 1 of 1

Help













