• 17-07-2009, 18:43:02
    #1
    Eposta Aktivasyonu Gerekmekte
    arkadaşlar bir bot yazıyorum html ve php latin 5.verileri sorunsuz çekiyorum. tr karakterler düzgün.db ye ekliyeceğim, fakat mysql, latin1_swedish_ci.verileri eklerken türkçe karakterleri ý gibi karakterlere dönüştürmek istiyorum. mesala
    atış kelimesini atýþ şeklinde kaydetmek istiyorum.
    aşşağıdaki fonksiyondan geçirip ekletiyorum fakat türkçe karakterler ? olarak çıkıyor.

    function sucuk($q) { 
    	$q = mb_convert_encoding($q, "iso-8859-1", "iso-8859-9");
    	$ae1=array('İ','ı','Ü','ü','Ç','ç','Ş','ş','Ö','ö','ğ','Ğ');
    	$ae2=array('Ý','ý','Ü','ü','Ç','ç','Þ','þ','Ö','ö','ð','Ð');
    	$q=str_replace($ae1,$ae2,$q);
    
     return $q; 
    }
    mysql bağlantı dosyasını vs.. bağlantı kodlamasını falan nasıl ayarlamalıyım?
  • 17-07-2009, 19:45:35
    #2
    iconv kullan :
    PHP: iconv - Manual
  • 17-07-2009, 20:28:47
    #3
    Eposta Aktivasyonu Gerekmekte
    Notice: iconv() [function.iconv]: Detected an illegal character in input string in C:\wamp\www\bot\oyun\1\y8kaydet.php on line 66
    fonksiyonu aşşağıdaki gibi düzenledim. ve bu hatayı verdi. 66. satır, iconv satırı.
    function sucuk($q) { 
    	$q = iconv("iso-8859-9","iso-8859-1",$q);
    	$ae1=array('İ','ı','Ü','ü','Ç','ç','Ş','ş','Ö','ö','ğ','Ğ');
    	$ae2=array('Ý','ý','Ü','ü','Ç','ç','Þ','þ','Ö','ö','ð','Ð');
    	$q=str_replace($ae1,$ae2,$q);
     return $q; 
    }

    edit: başına @ koyuncada türkçe karakterlerin başladığı yerde veriyi kesiyor.

    mesala

    selam kardeşler forum çok güzel yazısı varsa
    selam karde bu kadar görünüyor yazı.
  • 17-07-2009, 21:25:17
    #4
    Benim anlamadığım nokta ben hiçbir zaman ne veritabanında ki collationlar ile oynuyorum ne de karakter setleri ile, php zaten bizlere her türlü karakteri mysql ne şekilde istiyorsak o şekilde yazdırmak için onlarca fonksiyon vermiş, siz halâ mysql deki karakter setlerine takılı kalıyosunuz, veritabannız utf 8 ise istediğiniz karakteri istediğiniz biçim de veritabanında saklayabilirsiniz, siz doğru olan şeyi bozup sonrada tamir etmeye çalışıyosunuz, karakterler ile ilgili problemler php 4.3 ile tarih oldu, eski versiyon kullanıyosanız orasını bilemem..
  • 17-07-2009, 21:47:25
    #5
    Eposta Aktivasyonu Gerekmekte
    Enigmatic adlı üyeden alıntı: mesajı görüntüle
    Benim anlamadığım nokta ben hiçbir zaman ne veritabanında ki collationlar ile oynuyorum ne de karakter setleri ile, php zaten bizlere her türlü karakteri mysql ne şekilde istiyorsak o şekilde yazdırmak için onlarca fonksiyon vermiş, siz halâ mysql deki karakter setlerine takılı kalıyosunuz, veritabannız utf 8 ise istediğiniz karakteri istediğiniz biçim de veritabanında saklayabilirsiniz, siz doğru olan şeyi bozup sonrada tamir etmeye çalışıyosunuz, karakterler ile ilgili problemler php 4.3 ile tarih oldu, eski versiyon kullanıyosanız orasını bilemem..
    dostum sorun benle ilgili değil ben her zaman latin 5 kullanırım, hiç sorun yaşamam.Ajaxla aldığım verileri iconv ile utf-8 den latin 5 e çeviririm.hiç sorun yaşamam ama botu yazdığım sitenin veritabanı latin1. Olmayacak galiba.bot yazdığım sitenin veritabanını latin 5 yaptım mecbur tüm karakterler bozuldu napıcam bilmiyorum.