2016-08-18 4 views
0


현재 PHP로 작업 중이며 CSV를 구문 분석하고 DB에 저장하고 있습니다.
아무런 문제가 없지만 제대로 표시되지 않는 프랑스어 문자가 있습니다.
나는 이전의 모든 질문을 살펴보고 모든 제안 된 해결책을 시도했지만 아무도 내 문제를 해결하지 못했습니다 ....
또한 "utf8_encode"를 사용하면 더 읽을 수 없게됩니다. 여기
당신이 함수의 모든 코드를 찾을 수 있습니다에서PHP 프랑스어 문자 enconding

if(date('l') == 'Thursday' or date('d') == 1) 
    { 
     $row = 1; 
     if (($handle = fopen("C:/Users/ASUS/Downloads/Exemple_extraction.csv", "r")) !== FALSE) 
     { 
      $this->createTable(); 
      while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
      { 
       if($row == 1){ $row++; continue; } 
       $num = count($data); 
       for ($c = 0; $c < $num; $c++) 
       { 
        $dataa = (explode(';', $data[$c])); 
        $dest = str_replace(' ', '', $dataa['27']); 
        echo($dataa['27']);echo '<br>'; 
        switch($dest) 
        { 
         case 'Investissement': 
          $destination = 'Investir'; 
          break; 

         case 'Non défini': 
          $destination = ''; 
          break; 

         case 'Résidence principale': 
          $destination = 'Habiter'; 
          break; 

         case 'Résidence secondaire': 
          $destination = 'Habiter'; 
          break; 

         default: 
          $destination = ''; 
        } 

        $tLogt = str_replace(' ', '', $dataa['26']); 
        switch($tLogt) 
        { 
         case 'Studio': 
          $tLogt = 'studio'; 
          break; 

         case '1/2 pièces': 
          $tLogt = '2P'; 
          break; 

         case '2/3 pièces': 
          $tLogt = '3P'; 
          break; 

         case '3/4 pièces': 
          $tLogt = '4P'; 
          break; 

         default: 
          if($tLogt == '4/5 pièces' || $tLogt == '5/6 pièces' || $tLogt == '5P DUPLEX') 
          { 
           $tLogt = '5P+'; 
          } 
        } 

        if(str_replace(' ', '', $dataa['9']) != '') 
        { 
         $cp = substr(str_replace(' ', '', $dataa['9']), 0, 2); 
        } 
        else 
        { 
         $cp = ''; 
        } 

        DB::table(date('l') . '_' . date("d_m_Y")) 
         ->insert(['flReservataire' => $dataa['0'], 
          'flClient' => $dataa['1'], 
          'idProspect' => $dataa['2'], 
          'civility' => $dataa['3'], 
          'firstname' => $dataa['4'], 
          'lastname' => $dataa['5'], 
          'address1' => $dataa['6'], 
          'address2' => $dataa['7'], 
          'address3' => $dataa['8'], 
          'zipcode' => $dataa['9'], 
          'city' => $dataa['10'], 
          'codeInsee' => $dataa['11'], 
          'country' => $dataa['12'], 
          'flNpai' => $dataa['13'], 
          'phone' => $dataa['14'], 
          'workphone' => $dataa['15'], 
          'cellphone' => $dataa['16'], 
          'email1' => $dataa['17'], 
          'email2' => $dataa['18'], 
          'flStopMarketing' => $dataa['19'], 
          'age' => $dataa['20'], 
          'program' => $dataa['21'], 
          'region' => $dataa['22'], 
          'department' => $dataa['23'], 
          'seller' => $dataa['24'], 
          'typeLogt' => $dataa['25'], 
          'tailleLogt' => $dataa['26'], 
          'destination' => $dataa['27'], 
          'apport' => $dataa['28'], 
          'budget' => $dataa['29'], 
          'timelimit' => $dataa['30'], 
          'idOrigine' => $dataa['31'], 
          'typeContact' => $dataa['32'], 
          'typeAction' => $dataa['33'], 
          'dateAction' => $dataa['34'], 
          'comment' => $dataa['35'], 
          'typeActionFuture' => $dataa['36'], 
          'dateActionFuture' => $dataa['37'], 
          'levier' => $dataa['38'], 
          'support' => $dataa['39'], 
          'enreg' => $dataa['40'], 
          'destination_good' => $destination, 
          'typologie_good' => $tLogt, 
          'cp_good' => $cp,]); 
       } 
      } 
      fclose($handle); 
      $this->sendMail('emailSuccess'); 
     } 
     else 
     { 
      $this->sendMail('emailError'); 
     } 
    } 


을 모든 "에코"나는이 문제를 가지고 ..
다른 제안 PLZ ?
덕분에
친절 감사

+0

http://www.joelonsoftware.com/articles/Unicode.html – Biffen

+0

당신은 이것을 보았습니까 : http://stackoverflow.com/a/25943822/1049833 – tyteen4a03

+0

네,하지만 도움이되지 않습니다 ... –

답변

0

작정 내 가정은 CSV 파일이 로컬 인코딩을 사용하는 것입니다. 올바른 내부 표현으로로드하려면 로컬 인코딩 (아마도 ISO-8859 또는 WIN-12xx)에서 UTF8로 iconv()를 사용해야합니다.

올바른 인코딩을 찾으려면 전환 인코딩을 지원하는 알맞은 텍스트 편집기를 사용하십시오. 그런 다음 소스를 읽을 수있게 만드는 옵션을 찾으십시오.

관련 문제