• 07-05-2014, 03:01:54
    #1



    require_once('../mysql_baglanti.php');
    require_once('../fonksiyonlar.php');
    $export_file = "urunlerin_ciktisi.csv";
    header('Pragma: public');
    header('Cache-Control: no-store, no-cache, must-revalidate');     // HTTP/1.1
    header('Cache-Control: pre-check=0, post-check=0, max-age=0');    // HTTP/1.1
    header ("Pragma: no-cache");
    header("Expires: 0");
    header('Content-Transfer-Encoding: none');
    header('Content-Type: application/vnd.ms-excel;');                 // This should work for IE & Opera
    header("Content-type: application/x-msexcel");
    header('Content-type: text/csv; charset=windows-1252');
    header('Content-Disposition: attachment; filename="'.basename($export_file).'"');  
    
    echo "Urun id,Urun Adi,Urun Aciklama\n";
    $satir;
    $sql = mysql_query("SELECT * FROM urunler")or die(mysql_error());
    while ($cek = mysql_fetch_assoc($sql)) {
        
        
        
        $urun_id = $cek['urun_id'];
        $urun_adi = $cek['urun_adi'];
        $urun_aciklama = replaceSpace(html_entity_decode($cek['urun_aciklama']));
        
        
        
        echo $urun_id.',"';
        echo $urun_adi.'","';
        echo $urun_aciklama.'"';
        echo "\n";
    }
    Cvs export ediyorum Türkçe karakter hatasını ne yapdıysam düzeltemedim.
    Şunların hepsini denedim.
    /*mysql_query("SET NAMES latin5");
        mysql_query("SET CHARACTER SET latin5");
        mysql_query("SET COLLATION_CONNECTION='latin5_turkish_ci'");  */
        mysql_query("SET NAMES utf8");
        mysql_query("SET CHARACTER SET utf8");
        mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
    phpmyadminde karakter setlerini denedim.

    Ayrıyetten header olarak
    header('Content-type: text/csv; charset=windows-1252');
    uft-8
    Kısacası çok fazla şey denedim. Denemediğim yöntem kalmadı desem yeridir. EEE kardeşim olmuyorsa bir bilene danış dedi abim. Bende r10 a sorum dedim.
    Yardımcı olursanız çok makbule geçer. Çalışmalarınızda kolaylıklar dilerim.
  • 07-05-2014, 03:12:05
    #2
    csv dosyasının karakter seti önemli, örnek bir csv dosyası verebilirmisiniz?


    Edit: Özür dilerim ben import ediyorsunuz sandım bir an,

    Alıntı
    header('Content-type: text/csv; charset=charset=utf-8');
    (utf-8 yerine mysql tablonuzun karakter kodunu yazarakta deneyebilirsiniz.)

    Ekleme:

    Ayrıca verilerinizi convert ederekte deneyebilirsiniz

    Alıntı
    iconv('UTF-8', 'ISO-8859-9//TRANSLIT', $value),
    Şuraya da göz atmak isteyebilirsiniz
    http://stackoverflow.com/questions/4...-read-properly
  • 07-05-2014, 03:15:54
    #3
    Gif güzelmiş
  • 07-05-2014, 03:20:13
    #4
    victories adlı üyeden alıntı: mesajı görüntüle
    csv dosyasının karakter seti önemli, örnek bir csv dosyası verebilirmisiniz?


    Edit: Özür dilerim ben import ediyorsunuz sandım bir an,



    (utf-8 yerine mysql tablonuzun karakter kodunu yazarakta deneyebilirsiniz.)
    Önemli değil hocam. İlginiz için teşekkür ederim.

    Vesselam adlı üyeden alıntı: mesajı görüntüle
    Gif güzelmiş
    Ruh halimi andırıyor
  • 07-05-2014, 03:22:39
    #5
    Üyeliği durduruldu
    Encode utf-8 olarak kalsın değerleri aşağıdaki fonksiyondan geçirin düzelecektir.

    function tr($veri)
    {
    $veri = iconv("ISO-8859-9","UTF-8",$veri);
    return $veri
    }
  • 07-05-2014, 03:29:00
    #6
    PhpDeveloper adlı üyeden alıntı: mesajı görüntüle
    Encode utf-8 olarak kalsın değerleri aşağıdaki fonksiyondan geçirin düzelecektir.

    function tr($veri) { $veri = iconv("ISO-8859-9","UTF-8",$veri); return $veri }
    Malesef hocam olmuyor.

    Ayrıyetten şöyle bi fonksiyonda kullandım
    function csv_encode_conv($var, $enc='Windows-1252') {
    $var = htmlentities($var, ENT_QUOTES, 'utf-8');
    $var = html_entity_decode($var, ENT_QUOTES , $enc);
    return $var;
    Oda işe yaramadı.
    Bu sorun sanırım veri tabanındaki html kodlardan kaynaklanıyor. html decode ediyorum ama birşey bozuyor. Çözemedim bir türlü.
  • 07-05-2014, 03:34:05
    #7
    Üyeliği durduruldu
    yarar hocam sayfanın charsetini utf-8 yapın mysql karakter setleri 8859 olarak kalsın mysql den çektiğiniz verileri fonksiyondan geçirin düzelmesi gerekiyor.
  • 07-05-2014, 04:04:30
    #8
    PhpDeveloper adlı üyeden alıntı: mesajı görüntüle
    yarar hocam sayfanın charsetini utf-8 yapın mysql karakter setleri 8859 olarak kalsın mysql den çektiğiniz verileri fonksiyondan geçirin düzelmesi gerekiyor.
    Hocam sayfanın charseti
    header('Content-type: text/csv; charset=UTF-8');

    mysql charsetler
    mysql_query("SET NAMES ISO-8859-9");
    mysql_query("SET CHARACTER SET ISO-8859-9");
    mysql_query("SET COLLATION_CONNECTION='ISO-8859-9'");

    Ayrıyetten verileri bu fonksiyondan geçiriyorum
    function tr($veri)
    {
    $veri = iconv("ISO-8859-9","UTF-8",$veri);
    return $veri;
    }

    Sonuç yine aynı hocam. Veri tabanı karşılaştırmasıda utf 8 genaral ci

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 04:04:30 -->-> Daha önceki mesaj 03:52:44 --

    Şöyle yapınca düzelti Hayret

    Sırasıyla yazıyorum.

    Phpmyadmin deki veri tabanı karşılaştırma seti utf8_general_ci

    mysql query dosyasındaki karakter seti
    mysql_query("SET NAMES latin5");
    mysql_query("SET CHARACTER SET latin5");
    mysql_query("SET COLLATION_CONNECTION='latin5_turkish_ci'");

    Php dosyasındaki header
    header('Content-type: text/csv; charset=latin5');

    Sonuç:


    Biraz saçma gibi geldi ama şimdilik iş görüyor

    Ayrıyetten bu kodlarda işe yarıyor.
    $urun_aciklama = mb_convert_encoding($urun_aciklama ,'ISO-8859-9',mb_detect_encoding($urun_aciklama ,'UTF-8',true));
    $urunisim = mb_convert_encoding($urunisim ,'ISO-8859-9',mb_detect_encoding($urunisim ,'UTF-8',true));