UTF8 ile ISO-8859-9 dönüştürmek
Php yada asp ile de herzaman kodlama yaparken karşınıza çıkabilecek bir sorundan bahsedeceğim.Dil kodlaması gerek veritabanı işlemlerinde gerekse de entegrasyon sistemleri üzerinde çalışırken sürekli takıldığım noktalardan oluştur.
Fakat vereceğim örnekle sanıyorum ki bu konu daha kolay çözülecek.
Bu işlemde php nin mb_convert_encoding fonksiyonunu kullanıyoruz.
<div id="foo"> <?php $urunadi = "Gölge Saat"; $urunadi-iso = mb_convert_encoding ($urunadi, "UTF-8", "ISO-8859-9"); $urunadi-utf-8 = mb_convert_encoding ($urunadi, "ISO-8859-9", "UTF-8"); ?></div>
Şeklinde elinizdeki veriyi isterseniz utf8 den iso-8859-9 karakter setine isterseniz de iso-8859-9 karakter setinden utf-8 e dönüştürebilirsiniz.
utf-8 dönüşümlerinde bazı karakterlerde sorunlar olabiliyor bende bu sorunu kendi kullandığım kod içerisinde php nin strtr fonksiyonunu kullanarak çözüyorum.
<div id="foo"> <?php $trkarakter =array( "\xf6" => 'o', "\xd6" => 'o', "\x69" => 'i', "\xd6" => 'o', "\xfe" => 's', "\xfd" => 'İ', "\xde" => 's', "\xd0" => 'g', "\xf0" => 'g', "\xdd" => 'i', "ı" => 'ı', "İ" => 'i', "ÄŸ" => 'ğ', "Ä" => 'Ğ', "Ü" => 'Ü', "ü" => 'ü', "Ç" => 'Ç', "ç" => 'ç', "Å" => 'Ş', "ÅŸ" => 'ş', "Ö" => 'Ö', "ö" => 'ö', ); $trkaraterli = strtr($urunadi-utf-8,$trkarakterli); echo $trkarakterli; ?></div>



merhaba,
yukaridaki bilgilendirmenizi okudum, belki yardimci olabilirsiniz
sitem icin php ve mysql ile arama motoru yaptim. Gayet iyi calisiyor.
Yalniz sunu da yapmak istiyorum (basaramadim maalesef)
Anahtar kelimelerde ilk harfte Ş,Ç,İ,Ö,Ü gibi cogu bize ozel harf varsa bunlarin kucuk halini yazdirmak istiyorum.
Misal: Aranan kelime:Şair , ben bunu veritabanimda şair olarak aratmak istiyorum
$aranan = $_GET['aranan'];
$aranan = str_replace(”Ş”,”ş”,$aranan);
veya
$aranan = strtolower($_GET['aranan']);
kodları maalesef işe yaramıyor.
Belki ilgili olabilir “Şair” diye aranan kelime adres satırında “%DEair” olarak gözükmekte. Yani Ş = %DE . yardımcı olur musunuz
teşekkürler
Bu fonksiyonu kullanabilirsin sanırım.Fonksiyonu tanımla ardından strtolower yerine strtolower_tr olarak kullan.
< ?php
function strtolower_tr($string)
{
$low=array("Ü" => “ü”, “Ö” => “ö”, “Ğ” => “ğ”, “Ş” => “ş”, “Ç” => “ç”, “İ” => “i”, “I” => “ı”);
return strtolower(strtr($string,$low));
}
?>
Çözüme ulaşamazsan daha farklı yöntemler deniyebiliriz.
Fonksiyon : Dinçer Akay