Achei isso aqui... pode ser interessante no futuro...<div><br></div><div><a href="http://search.cpan.org/~frew/DBIx-Class-0.08123/lib/DBIx/Class/Manual/Cookbook.pod#MySQL">http://search.cpan.org/~frew/DBIx-Class-0.08123/lib/DBIx/Class/Manual/Cookbook.pod#MySQL</a></div>
<div><br></div><div><br></div><div><a href="http://search.cpan.org/~frew/DBIx-Class-0.08123/lib/DBIx/Class/Manual/Cookbook.pod#MySQL"></a>Cheers!<br><br><div class="gmail_quote">Em 21 de junho de 2010 02:01, breno <span dir="ltr"><<a href="mailto:breno@rio.pm.org">breno@rio.pm.org</a>></span> escreveu:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">2010/6/20 Andre Carneiro <<a href="mailto:andregarciacarneiro@gmail.com">andregarciacarneiro@gmail.com</a>>:<br>
<div><div></div><div class="h5">><br>
><br>
>><br>
>> Segue um exemplo de pequenas frases com problemas:<br>
>> CAF� DA TARDE<br>
>> --> deveria ser "CAFÉ DA TARDE"<br>
>><br>
>> Café<br>
>> --> deveria ser "Café"<br>
>><br>
>> REUNI�ES INTERNAS<br>
>> --> deveria ser "REUNIÕES INTERNAS"<br>
>><br>
>><br>
><br>
> A codificação de caracteres do mysqldump está diferente da configuração do<br>
> 'locales' do S.O. de quem criou o dump, e/ou diferente da codificação de<br>
> caracteres do próprio mysql. Esse é o problema.<br>
><br>
> Você pode tentar usar esse script na linha de comando:<br>
> <code><br>
> user$ perl -MEncode -e 'open my $ndump ,">","/tmp/meunovodump.sql"<br>
> while(<>){my $line = $_; my $nline = decode "iso-8859-1",$line; $nline =<br>
> encode "utf-8",$nline; print $ndump $nline;}close $ndump;'<br>
> path/para/o/dump/cagado.sql<br>
> </code><br>
> Isso lê o arquivo com a codificação errada, linha a linha, converte cada<br>
> linha de iso-8859-1 para utf-8 e escreve num novo arquivo em /tmp.<br>
><br>
> O que é estranho, é que você disse que a página está em utf-8. O código do<br>
> dump também parece estar em UTF-8, portanto não deveria estar exibindo<br>
> caracteres 'idiotas'. Sugiro que você vá saber primeiro qual é a codificação<br>
> em todo o caminho do fluxo desses dados, desde S.O., máquinas etc. para<br>
> saber exatamente para qual codificação você deve converter os seus dados.<br>
><br>
<br>
</div></div>Se funciona para registros novos, de repente até uma subsituição<br>
simples no dump (com vim ou perl) já resolveria. Mudar os comandos do<br>
dump pra apenas alterar as entradas com problemas sem fazer drop nas<br>
tabelas ou modificar índices não me parece um grande desafio (por<br>
outro lado não sei a complexidade do modelo). Quanto a adivinhar a<br>
codificação, os arquivos gerados pelo mysqldump costumam definir isso<br>
dentro do arquivo (procure por SET NAMES $foo). Na pior das hipóteses,<br>
abra o dump no vim (ou no perl), e veja qual código ele representa.<br>
Daí ou tente fazer a conversão apropriada (como Blabos e Andre<br>
sugeriram) ou troque pela correta via substituição simples.<br>
<br>
A título de "não cometamos o mesmo erro no futuro", lembre-se que dá<br>
pra forçar charset no mysqldump (veja a opção<br>
--default-character-set=$foo)<br>
<br>
<a href="http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_default-character-set" target="_blank">http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_default-character-set</a><br>
<br>
E que devemos sempre testar backups antes de dependermos deles :-)<br>
<br>
[]s<br>
<font color="#888888"><br>
-b<br>
</font><div><div></div><div class="h5">_______________________________________________<br>
Cascavel-pm mailing list<br>
<a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>André Garcia Carneiro<br>Analista/Desenvolvedor Perl<br>(11)82907780<br>
</div>