[Resolvido] Erro importar TXT com acento
Olá pessoal, já pesquisei no forum e não encontrei problema como o meu, geralmente importa sem acento ou "bagunça" o texto com acento, no meu caso ele para na linha que encontra o acento, segue meus códigos:
PHP
<?php
$sql_arquivo = mysql_query("SELECT * FROM tb_arquivos_ftp WHERE diretorio LIKE '%feriado%'");
$total = mysql_num_rows($sql_arquivo);
while($resultado = mysql_fetch_array ($sql_arquivo)){
$caminho = $resultado['diretorio'];
}
if ( ( $fh = fopen( 'FTP/DADOS_ZIP/'.$caminho , 'r' ) ) ){
$lines = array();
while ( ( $linha = fgets( $fh , 1024 ) ) ){
$lines[] = sprintf( '("%s")' , implode( '","' , array(
trim(substr($linha, 0, 10)), //CAMPO DATA_FERIADO
trim(substr($linha, 10, 50)), //CAMPO DESC_FERIADO
trim(substr($linha, 50, 1)), //CAMPO TIPO_FERIADO
) ) );
}
fclose( $fh );
if ( count( $lines ) > 0 ){
$acessosql = sprintf(
'INSERT INTO tb_feriado (data_feriado, desc_feriado, tipo_feriado) VALUES %s',
implode( ',' , array_slice( $lines , 0 , count( $lines ) - 0 ) )
);
mysql_query($acessosql) or die(mysql_error());
}
}
?>
MYSQL
CREATE TABLE `tb_feriado` (
`data_feriado` varchar(10) DEFAULT NULL COMMENT 'Data do feriado.',
`desc_feriado` varchar(60) DEFAULT NULL COMMENT 'Descricao do feriado',
`tipo_feriado` int(1) unsigned DEFAULT NULL COMMENT 'Tipo do feriado. Codigos: 1 - nacional / 2 ou 4 = local',
`id` int(5) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4972 DEFAULT CHARSET=utf8 COMMENT='Informacoes sobre feriados'
TXT IMPORTADO
15/11/2060PROCLAMACAO DA REPUBLICA 1
02/11/2060FINADOS 1
12/10/2060PADROEIRA DO BRASIL 1
07/09/2060INDEPENDENCIA DO BRASIL 1
17/06/2060CORPUS CHRISTI 1
21/04/2060TIRADENTES 1
16/04/2060SEXTA FEIRA SANTA 1
02/03/2060CARNAVAL 1
01/03/2060CARNAVAL 1
01/01/2060CONFRATERNIZACAO UNIVERSAL 1
25/12/2059NATAL 1
29/05/2059CORPUS CHRISTI 1
01/05/2059DIA DO TRABALHADOR 1
21/04/2059TIRADENTES 1
28/03/2059SEXTA FEIRA SANTA 1
11/02/2059CARNAVAL 1
10/02/2059CARNAVAL 1
01/01/2059]CONFRATERNIZAÇÃO UNIVERSAL 1
Note no TXT IMPORTADO que o erro acontece na linha onde esta o acento, ele para e exibe o erro não importando nada, nem mesmo os anteriores.
ERRO
Incorrect string value: '\xC7\xC3O UN...' for column 'desc_feriado' at row 18
Observando meu Mysql, percebi que executando o comando status; existe algo que pode esta atrapalhando:
SERVER CHARACTERSET: UTF8
Db CHARACTERSET: UTF8
CLIENT CHARACTERSET: CP850
CONN CHARACTERSET: CP850
Discussão (1)
Carregando comentários...