arkadaşlar str_replace fonksiyonunda türkçe karakterleri ingilizce karakterlere dönüştürüyorum fakat bazıları olmuyor sorun neden kaynaklanabilir?

$catname = str_replace (" ","-",$catname);
$catname = str_replace ("'","_",$catname);
$catname = str_replace ("Ç","C",$catname);
$catname = str_replace ("ö","o",$catname);
$catname = str_replace ("ü","u",$catname);
$catname = str_replace ("ş","s",$catname);
$catname = str_replace ("ğ","g",$catname);
$catname = str_replace ("ı","i",$catname);
olmayanlar ş, ı, ğ

Ş olarak yaptım S'ye çeviriyor ama küçüğünü neden yapmıyor?