• 01-10-2019, 12:15:38
    #1
    Merhabalar arkadaşlar websitemin sunucusunu değiştirdim ve taşıma işlemini gerçekleştirdikten sonra table of content eklentisi tarafından oluşturulan linklerde türkçe karakter problemi oluştu. Sitenin başka hiç bir yerinde türkçe karakter problemi yok. Temanın kullandığı tüm fontlar düzgün çalışıyor. Sadece eklenti tarafından oluşturulan link sonunda "#" ile başlayan linklerde problem bulunmakta.

    Site bir önceki sunucu tarafından sunulurken "TOEFL Sınav Başvurusu" alt başlığının linki;
    https://sitem.com/toefl/#TOEFL-Sinav-Basvurusu
    Eski sunucuda yukarıdaki şekildeydi.

    Sunucuyu deÄŸiÅŸtirdikten sonra linkler bu ÅŸekilde bozuldu:
    https://sitem.com/toefl/#TOEFL-S305nav-Ba351vurusu

    Örnek 2:
    https://sitem.com/sat-sinavi/#SAT-Sinav-Ucreti
    https://sitem.com/sat-sinavi/#SAT-S305nav-Uumlcreti
    • Veri tabanının hiç bir yerinde utf8 ve utf8_general_ci dışında baÅŸka charset geçmiyor.
    • Eski sunucuda phpmyadmin sunucu baÄŸlantısı karşılaÅŸtırması ayarları utf8mb4_unicode_ci iken yeni sunucuda utf8_general_ci olarak ayarlı. (Bu maddeye dair sorum eski sunucudan veritabanını dışa aktarırken bu ayarın etkisi olup olmadığı)
    • 2 sunucuda da wp-config dosyasında utf8 geçiyor.
    • Yeni sunucudaki Htaccess dosyasının sadece yorum kısımlarında bozulmalar var.
    # Since we’re sending far-future expires, we don’t need ETags for static content.
    Aynı zamanda yeni sunucuda bir başka site daha sunulmakta. Bu sitede de aynı eklenti tarafından oluşturulan altbaşlık linkleri bulunmakta. Bu linklerde de aynı şekilde türkçe karakterlerden kaynaklı bir problem var. Sunucudan kaynaklanan bir problem olabileceğini de düşünüyorum.

    Siteyi taşırken biraz sıkıntılı oldu. Eski sunucuda bulunan database i yeni sunucuya yüklemeye çalıştığımızda charset kaynaklı bir hata alıyorduk. Eski sunucunun phpmyadmin ayarları ile oynanmadı. Taşıma sorununu çözmek için yeni sunucudaki phpmyadmin sunucu bağlantısı karşılaştırması ayarını utf8_general_ci yaptım. Taşıma sorunu çözüldü fakat türkçe karakter problemi aşılamadı.

    Konu hakkında bilgili biri yardımcı olabilirse çok sevinirim. Bir çok şey denedim ve çözüme halen ulaşamadım.
  • 01-10-2019, 13:48:44
    #2
    Developer
    Eklentideki toc.php dosyasını kontrol ettim. Sanıyorum 1138. satırdaki remove_accents( $return ); şu fonksiyon düzgün çalışamıyor.
    Bu fonksiyon şu işe yarıyor: https://developer.wordpress.org/refe...emove_accents/

    notepad++ ile utf8 ve utf8 bomsuz olarak kaydedip denediniz mi?

    bahsettiğim fonksiyondan önce şu kodları ekleyip deneyin:
    $find = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '+', '#');
    $replace = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', 'plus', 'sharp');
    $return = strtolower(str_replace($find, $replace, $return));
    yine problem olursa üstteki kod dursun $return = remove_accents( $return ); kodunu silip deneyin.
  • 02-10-2019, 12:24:00
    #3
    Merhabalar öncelikle çok teşekkür ederim sorunu nokta atışı tespit ettiniz.

    Verdiğiniz fonksiyonu belirttiğiniz yere attım. Dosyayı kaydetip yeniden açtığımda otomatik olarak bu hale geliyor kod. Gördüğünüz gibi Ç, Ü, Ö, ç, ü, ö harflerinde değişiklik yok. Aynı zamanda ' (tırnak işareti) ve altbaşlıklardaki boşluklarda da problem tespit ettim.

    Ben de bunun üzerine bu link üzerinden Ç, Ü, Ö, ç, ü, ö harflerini temsil eden numerik karakterleri buldum ve değiştirdim;

    Fakat bu değişiklik sonrasında da Ç, Ü, Ö, ç, ü, ö harflerindeki hata giderilmedi.
    2. düzenleme olarak aşağıdaki kodu kullandım.
    Bu kullanımda da ü, ö ve ç harfleri düzeldi fakat Ü, Ö ve Ç harflerinde değişiklik yok. Fakat Ü veya ü kullanımında ikisinde de uuml karakteri çıkıyor. Ü'yü temsil eden karakteri nasıl çözücem anlayamadım.

    uuml - ü, Ü
    /tr/ispanya-yuksek-lisans/#ispanya-yuumlksek-lisans-uumlniversiteleri

    ouml - ö, Ö
    /tr/amerika-universiteleri/#sehirlere-ve-eyaletlere-goumlre-amerika-uumlniversiteleri

    ccedil - ç, Ç
    /tr/ispanya-yuksek-lisans/#ispanya-vizesi-iccedilin-gerekli-evraklar

    rsquo - ' (Tırnak işareti yerine rsquo geliyor.)
    tr/ispanya-yuksek-lisans/#ispanyarsquoda-konaklama

    nbsp - Bir de ekstra olarak altbaşlıkların başında veya sonunda sahip oldukları boşluklar yerine nbsp getirdi.
    /tr/kanada-lise/#kanada-lise-tiplerinbsp

    Yorum düzenleme notu: Yukarıdaki kodların tamamını burada phpkod olarak girdiğimde r10 otomatik olarak numerik karakterleri türkçe karakterlere çevirdi. Bu yüzden kullanılan tüm kodları image olarak yerleştirdim.




    Sorunu aşağıdaki kod ile çözdüm. Çok teşekkür ederim yardımınız için. Umarım aynı sorunla karşılaşan arkadaşlara da faydalı olur konu.

  • 02-10-2019, 13:23:05
    #4
    Developer
    Rica ederim. Ben sadece yol gösterdim. Sorunu siz zaten çözmüşsünüz. İyi çalışmalar.