Ir para conteúdo

POWERED BY:

Arquivado

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

raphaell.info

[Resolvido] Erro importar TXT com acento

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

RESOLVIDO, Fica a dica:

        header('Content-Type: text/html; charset=latin1');
       mysql_query("SET NAMES 'latin1'");
       mysql_query('SET character_set_connection=latin1');
       mysql_query('SET character_set_client=latin1');
       mysql_query('SET character_set_results=latin1');

 

utilizei no meu config.php

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.