[Çözüldü] Excell Dosya Aktarma Türkçe Karakter Sorunu

Başlatan oguzcan, 19 Mayıs 2020 - 04:02:30

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

oguzcan

Merhabalar,

Excell dosyasını butona basınca oluşturuyor, fakat excell'i açtığımda Türkçe karakterlerde hata oluyor.
<?php  
//export.php  
$connect mysqli_connect("localhost""root""""proje");
$output '';

if(isset(
$_POST["export"]))
{
 
$query "SELECT * FROM musteriler";
 
$result mysqli_query($connect$query);
 if(
mysqli_num_rows($result) > 0)
 {
  
$output .= '
   <table class="table" bordered="1">  
                    <tr>  
                         <th>id</th>  
                         <th>Ad Soyad</th>  
                         <th>Telefon Numarası</th>  
       <th>Mail</th>
       <th>Doğum Tarihi</th>
                    </tr>
  '
;
  while(
$row mysqli_fetch_array($result))
  {
   
$output .= '
    <tr>  
                         <td>'
.$row["id"].'</td>  
                         <td>'
.$row["adSoyad"].'</td>  
                         <td>'
.$row["telefonNumarasi"].'</td>  
       <td>'
.$row["mail"].'</td>  
       <td>'
.$row["dogum_tarihi"].'</td>
                    </tr>
   '
;
  }
  
$output .= '</table>';
  
header"Content-type: application/vnd.ms-excel; charset=UTF-8" );
  
header('Content-Disposition: attachment; filename=download.xls');
  echo 
$output;
 }
}
?>

haiko

Dikkat Alıntıdır:

"Çözüm benim için çalıştı
Danimarkalı Zahur,

7 Ekim 2009 @ 19:23

İçeriğiniz UTF-8 biçimindeyse, kodlamaya dönüştürmeye gerek yoktur. Sadece başlıklardan sonra dosya / çıktı akışınızı UTF-8 BOM ile başlatın.

echo pack("CCC",0xef,0xbb,0xbf);

Ve başlık UTF-8 kodlaması içermelidir

header( "Content-type: application/vnd.ms-excel; charset=UTF-8" );

Excel, BOM baytları ile dosya karakter kümesini tanıyacağı için roket gibi çalışacaktır."

demiş...

Kaynak: https://stackoverflow.com/questions/5368150/php-header-excel-and-utf-8
Koşuyorum dikenlerin üstünde...

oguzcan

Alıntı yapılan: haiko - 19 Mayıs 2020 - 08:39:07
Dikkat Alıntıdır:

"Çözüm benim için çalıştı
Danimarkalı Zahur,

7 Ekim 2009 @ 19:23

İçeriğiniz UTF-8 biçimindeyse, kodlamaya dönüştürmeye gerek yoktur. Sadece başlıklardan sonra dosya / çıktı akışınızı UTF-8 BOM ile başlatın.

echo pack("CCC",0xef,0xbb,0xbf);

Ve başlık UTF-8 kodlaması içermelidir

header( "Content-type: application/vnd.ms-excel; charset=UTF-8" );

Excel, BOM baytları ile dosya karakter kümesini tanıyacağı için roket gibi çalışacaktır."

demiş...

Kaynak: https://stackoverflow.com/questions/5368150/php-header-excel-and-utf-8

Peki kod içerisinde dediklerini düzenlemek istesem, düzenlenmiş hali nasıl olmalı?

haiko

Alıntı yapılan: oguzcan - 19 Mayıs 2020 - 04:02:30
Merhabalar,

Excell dosyasını butona basınca oluşturuyor, fakat excell'i açtığımda Türkçe karakterlerde hata oluyor.
<?php  
//export.php  
$connect mysqli_connect("localhost""root""""proje");
$output '';

if(isset(
$_POST["export"]))
{
 
$query "SELECT * FROM musteriler";
 
$result mysqli_query($connect$query);
 if(
mysqli_num_rows($result) > 0)
 {
  
$output .= '
   <table class="table" bordered="1">  
                    <tr>  
                         <th>id</th>  
                         <th>Ad Soyad</th>  
                         <th>Telefon Numarası</th>  
       <th>Mail</th>
       <th>Doğum Tarihi</th>
                    </tr>
  '
;
  while(
$row mysqli_fetch_array($result))
  {
   
$output .= '
    <tr>  
                         <td>'
.$row["id"].'</td>  
                         <td>'
.$row["adSoyad"].'</td>  
                         <td>'
.$row["telefonNumarasi"].'</td>  
       <td>'
.$row["mail"].'</td>  
       <td>'
.$row["dogum_tarihi"].'</td>
                    </tr>
   '
;
  }
  
$output .= '</table>';
  
header("Content-type: application/vnd.ms-excel");
  
header('Content-Disposition: attachment; filename=download.xls');
  echo 
$output;
 }
}
?>

Koşuyorum dikenlerin üstünde...

oguzcan

Alıntı yapılan: haiko - 19 Mayıs 2020 - 18:47:47
Alıntı yapılan: oguzcan - 19 Mayıs 2020 - 04:02:30
Merhabalar,

Excell dosyasını butona basınca oluşturuyor, fakat excell'i açtığımda Türkçe karakterlerde hata oluyor.
<?php  
//export.php  
$connect mysqli_connect("localhost""root""""proje");
$output '';

if(isset(
$_POST["export"]))
{
 
$query "SELECT * FROM musteriler";
 
$result mysqli_query($connect$query);
 if(
mysqli_num_rows($result) > 0)
 {
  
$output .= '
   <table class="table" bordered="1">  
                    <tr>  
                         <th>id</th>  
                         <th>Ad Soyad</th>  
                         <th>Telefon Numarası</th>  
       <th>Mail</th>
       <th>Doğum Tarihi</th>
                    </tr>
  '
;
  while(
$row mysqli_fetch_array($result))
  {
   
$output .= '
    <tr>  
                         <td>'
.$row["id"].'</td>  
                         <td>'
.$row["adSoyad"].'</td>  
                         <td>'
.$row["telefonNumarasi"].'</td>  
       <td>'
.$row["mail"].'</td>  
       <td>'
.$row["dogum_tarihi"].'</td>
                    </tr>
   '
;
  }
  
$output .= '</table>';
  
header("Content-type: application/vnd.ms-excel");
  
header('Content-Disposition: attachment; filename=download.xls');
  echo 
$output;
 }
}
?>


Girdiğiniz bir mesaj yok?

haiko

Girdiğim bir mesaj yok zaten;vermiş olduğunuz kod içerisinde sildiğim charset=UTF-8 kısmı var. Aynı kod içerisinde düzenleme olduğu için, tekrar tekrar cp yapmak istememiştim. Ayrıca son haliyle derlemede de bir sorun da çıkmadı. Kodlar gayet *kararlı iş görüyor. Ya da sizin sistem dosyalarınızda eksik bir durum da söz konusu olabilir.
Koşuyorum dikenlerin üstünde...