• 14-09-2010, 20:39:33
    #1
    Merhabalar,

    ilginç bir problem var.

    charset=utf-8 olarak yaptım mysqlide utf8_unicode_ci

    problem urlde. türkce olarak gözüküyor.

    siteismi.com/8-ĞÜŞ

    Özellikle charset=utf-8 yaptım , diğer dilleride desteklemem lazım.

    urlnin türkce olması problem olurmu?

    function RemoveBadURLChars($str) 
    { 
      
      $find[] = 'ğ';
      $find[] = 'Ğ';
      $find[] = 'ü';
      $find[] = 'Ü';
      $find[] = 's';
      $find[] = 'Ş';
      $find[] = 'ı';
      $find[] = 'İ';
      $find[] = 'ö';
      $find[] = 'Ö';
      $find[] = 'ç';
      $find[] = 'Ç';
      $replace[] = 'g';
      $replace[] = 'G';
      $replace[] = 'u';
      $replace[] = 'U';
      $replace[] = 's';
      $replace[] = 'S';
      $replace[] = 'i';
      $replace[] = 'I';
      $replace[] = 'o';
      $replace[] = 'O';
      $replace[] = 'c';
      $replace[] = 'C';
      
    return str_replace($find, $replace, $str); 
    }
  • 15-09-2010, 02:40:13
    #2
    denenmesi gereken bir çok kod var. ilk önce bu :
    function RemoveBadURLChars($q) { 
    $q = str_replace("ç","c",$q);
    $q = str_replace ("ç","c",$q); 
    $q = str_replace ("ð","g",$q); 
    $q = str_replace ("Ý","I",$q); 
    $q = str_replace ("ý","i",$q); 
    $q = str_replace ("ı","i",$q); 
    $q = str_replace ("ÅŸ","s",$q);
    $q = str_replace ("ü","u",$q);
    $q = str_replace ("ö","o",$q); 
    $q = str_replace ("ç","c",$q);
    $q = str_replace ("ÄŸ","g",$q);
    $q = str_replace ("Åž","s",$q); 
    $q = str_replace ("Ç","c",$q); 
    $q = str_replace ("Ü","u",$q);
    $q = str_replace ("İ","i",$q);
    $q = str_replace ("Ö","o",$q); 
    $q = str_replace ("Äž","g",$q);
    $q = str_replace ("þ","s",$q); 
    $q = str_replace ("ö","o",$q); 
    $q = str_replace ("ü","u",$q); 
    $q = str_replace ("Ü","U",$q); 
    $q = str_replace ("Ç","c",$q); 
    $q = str_replace (".","",$q); 
    $q = str_replace ("Ð","g",$q); 
    $q = str_replace ("Þ","S",$q); 
    $q = str_replace ("Ö","O",$q); 
    $q = str_replace ("'","",$q); 
    $q = str_replace ("/","",$q); 
    $q = str_replace (":","",$q); 
    $q = str_replace ("\"","",$q);
    $q = str_replace (" ","-",$q);  
    $q = str_replace ("-","-",$q);  
    $q = str_replace ("--","-",$q);
    $q = str_replace ("|","",$q); 
    $q=ereg_replace("[^0-9A-Za-z-]","", $q);
    $q = strtolower($q);
     return $q; 
    }
    Ama bu işte iconv üstüne tanımam. buyur:
    http://tr.php.net/iconv
  • 15-09-2010, 10:39:10
    #3
    mysql_query("SET NAMES 'latin5'"); bu kod işini halleder
  • 15-09-2010, 14:46:31
    #4
    siteyi UTF-8 'de yaptıysan SQL içinde
    mysql_query("SET NAMES 'utf8'");


    siteyi windows Türkçe dil desteği ile yaptıysan
    mysql_query("SET NAMES 'latin5'");

    yap düzelir.
  • 15-09-2010, 14:47:19
    #5
    Not: DOCTYPE sakın silme
  • 15-09-2010, 15:00:19
    #6
    url de türkçe karakter kullanman seo için daha iyidir.
    wordpress e bakın tüm urllerinde türkçe karakter arapça çince kullanmaktadır.
  • 16-09-2010, 16:11:09
    #7
    cevaplar icin tesekkurler. utf-8 de turkce karekterlerin saklanis sekli degisikmis. databaseyi gorunce farkettim.

    harfler bu sekildeymis.
     
    "ÅŸ"
    "ü"
    "ö"