• 04-04-2008, 10:54:11
    #1
    Merhaba arkadaşlar sitemi başka yere taşıdım sql dosyasını herşeyi attım ayarladım ancak türkçe karakter sorunu verdi bunu nasıl çözümleyebilirim yardımcı olabilirseniz sevinirim...
  • 04-04-2008, 23:47:10
    #2
    Üyeliği durduruldu
    usta sana bir kaç yol söylicem genelde tek bir yolla çözülmüyor herkesin sorunu farklı oluyor
    1.yol
    önceikle söyliyeyim bu işlem kesinlikle işe yarıyor daha önce kendi forumumda dahil pekçok forumun DB si bu yöntemle düzeltilmiş daha sonra ise hiç ortaya çıkmamıştır!
    öncelikle daha önce smf kurmamışsanız yeni kurcaksanız phpmyadmine girerek Veritabanı adının üzerine tıklayınız çıkan yerde üst menüde ''işlemler'' e geliniz ve en altta yer alan
    Karşılaştırma altında ki değeri binary olarak değiştirin ve yanındaki git kutucuğuna tıklayın. Daha sonra smf forumunuzu kurun veritabanınıza. Artık DB yedeği aldığınızda ya da DB yedeği yüklediğinizde kesinlikle TR karakter sorunu çıkmayacaktır.
    --------------------------------------------------------------------------------------------
    Eğer SMF forumunuz kurulu ancak phpmyadminde ki karşılaştırma dili başka bir değer (örnek: latin1_swedish.ci) bu şartlarda ileriki dönemlerde tr karakter sorunu yaşamanız normaldir peki burayı nasıl düzelteceğiz?
    Öncelikle şöyle yapacaksınız;
    veritabani_yedekle.php adlı dosyayı bulup indirin ve forum dizininize atıp çalıştırın oradaki alanlara DB bilgilerini yazıp yedeğinizi indirin yedeğinizi indirdikten sonra ise phpmyadminde ki tüm tablo ve şablonları silin !
    hepsi silindikten sonra Karşılaştırma da ki değeri tekrardan binary yapın ve git kutucuğuna tıklayın son olarak;
    veritabani_geri_yukle.php dosyasını indirin önceden aldığınız db yedeği (veritabani_yedekle.php ile alınan yedek) ile birlikte ftp den forum kısmına yollayın daha sonra veritabani_geri_yukle.php dosyasını çalışıtırp oradaki alanlara db bilgilerini yazın en alttaki yere ise db yedeğinizin tam yolunu girin ve geri yükleme işlemini başlatın sorunsuz birşekilde bitecektir. işlem bittiğinde ise veritabani_geri_yukle.php ve veritabani_yedekle.php dosyalarını siliniz sonra forumda herşey yolunda mı diye bir göz atınız eğer herşey yolunda ve hata yoksa ftp de ki yedeğinizi de siliniz. Bundan sonra yedeği nerden ve ne şekilde alırsanız alın TR karakter sorunu yaşamazsınız.

    2.yol

    genelde host değiştirirken oluşan Türkçe karakter sorunları başa beladır. ne yapsan düzelmez adamın ömrünün yarısını alır götürür, gezmediğin web sitesi kalmaz herkes bişey söyler kiminin önerisi çözüm olur kimininki daha beter eder sen kabız olduğunla kalırsın.hele db yi notepad ile açıp Türkçe karakterleri bul/değiştir ile düzelt demezlermi onları görünce nevrim dönüyo. kardeşim db nin boyutu 200mb sınırını zorluyo onu notepad ile nereye açıyosun, bırak editlemeyi 40mb dan yüksek sql'i notepad ile açmayı bi deneyin bakalım açılıyomu. neyse biz konumuza dönelim bizim işimiz daha beter olanı yada hiç çözülemeyeni çözmek.
    veritabanında Türkçe karakter sorunumu var? ne yaptıysan düzeltemedinmi? öyleyse diyeceklerimi yapmaktan başka şansın kalmadı demektir
    çözüm
    1- öncelikle HeidiSQL_3.0RC4_Setup isimli programı indirip kurucaksın. BURDAN İNDİREBİLİRSİNİZ
    2- programını açıyosun. new ile bir isim sallayıp veri tabanı kullanıcı adınız ile şifrenizi yazıp veri tabanınıza ulaşıyorsunuz..( C-Panel Kullananlar MYSQL veri tabanı oluşturdukları bölümden kendi ip numaralarına bağlantı izni vermeleri gerekiyor )

    3- şimdi işin gıcık kısmı geldi. programda sol kısımda yüklemiş olduğun veritabanları listelenir orda en son yüklediğin yedeği seçip ilk tablodan başlayarak son tabloya kadar içindekileri alanları sql sorgusu ile editlememiz gerek.
    nasıl yaparız dersek mesela forum db sindeki attachment tablosunu editlemek ile başlayalım.

    resimde 1 numara ile işaretlediğim yerdeki tabloların hepsini tek tek açıp içindekileri editliycez. bu tablonun içindekileri nerden görmek için önce 3 numaralı "data" sekmesini açıyoruz. ben data kısmında görünen attachment tablosunun "filename" alanını sql sorgusu ile editliycem. burda kullanacağımız sql sorgusu mantığı şuna benzer olucak
    update [tabloadı] set [alanadı] = replace([alanadı],'[değiştirilmesi istenen bilgi]','[yerine konacak bilgi]');
    5- şimdi data sekmesinin yan tarafındaki "Query" sekmesini açalım.
    oraya yukardaki kod satırına göre editlemek istediğimiz tablo ve alan adlarını yazalım. kodları aşağıdaki gibi kullanırsanız belirtilen tablonun belirtilen alanındaki tüm veriler taranıp istenilen değişiklikler yapılır. biz attachment tablosundaki filename alanınındaki bozk karakterleri düzelticektik bunun için kullanacağımız kodlar aşağıdaki gibidir. bunları "query" sekmesine yazıyoruz.
    UPDATE attachment SET filename = REPLACE (filename, 'þ', 'ş' ) WHERE filename LIKE '%þ%';
    UPDATE attachment SET filename = REPLACE (filename, 'Ãz', 'Ş' ) WHERE filename LIKE '%Ãz%';
    UPDATE attachment SET filename = REPLACE (filename, 'Ç', 'Ç' ) WHERE filename LIKE '%Ç%';
    UPDATE attachment SET filename = REPLACE (filename, 'ç', 'ç' ) WHERE filename LIKE '%ç%';
    UPDATE attachment SET filename = REPLACE (filename, 'Ã?', 'Ö' ) WHERE filename LIKE '%Ã?%';
    UPDATE attachment SET filename = REPLACE (filename, 'Ö', 'Ö' ) WHERE filename LIKE '%Ö%';
    UPDATE attachment SET filename = REPLACE (filename, 'ö', 'ö' ) WHERE filename LIKE '%ö%';
    UPDATE attachment SET filename = REPLACE (filename, 'ü', 'ü' ) WHERE filename LIKE '%ü%';
    UPDATE attachment SET filename = REPLACE (filename, 'ð', 'ğ' ) WHERE filename LIKE '%ð%';
    UPDATE attachment SET filename = REPLACE (filename, 'ý', 'ı' ) WHERE filename LIKE '%ý%';
    UPDATE attachment SET filename = REPLACE (filename, 'Ã�', 'İ' ) WHERE filename LIKE '%Ã�%';
    UPDATE attachment SET filename = REPLACE (filename, 'Ü', 'Ü' ) WHERE filename LIKE '%Ü%';
    UPDATE attachment SET filename = REPLACE (filename, 'Ä�', 'Ğ' ) WHERE filename LIKE '%Ä�%';

    kodları yazdıktan sonra bu edit işlemini tüm karakterler için bir seferde yapmak üzere kod satırlarının hepsini seçip bir üst resimdeki ok ile gösterilen ikona tıklıyoruz ve işlemin bitmesini bekliyoruz.
    program sql sorgusundaki değerlere göre bozuk karakterleri bulup bizim istediğimiz karakterler ile değiştiricek yani kısaca "bul/değiştir" işlemi yapıcak.
    bu işlem bittikten sonra işimiz bittimi tabiki bitmedi. biz düzeltme işlemini sadece attachment tablosunun filename alanı için yaptık ama orda attachment tablosunda sedece filename alanı yok ki daha orda bir sürü alan var şimdi sql sorgumuzu dğer alanlara göre değiştirip düzeltme işlemini yapmamız gerek. mesela "filedata" alanını editliyceksek kullanıcağımız sql kodu şöle olucak
    UPDATE attachment SET filendata = REPLACE (filedata, 'Ü', 'Ü' ) WHERE filedata LIKE '%Ü%';
    diğer kodlarıda bu şekilde değiştirip filedata içindeki bozuk karakterleri düzeltebilirsiniz.
    bu işlemleri tüm tablo ve içinlerindeki alanlar için yapmanız gerek.
    vbulletin kullanıyorsanız 112 civarı tablo içlerindeki sayısız alan ile uğraşmak gözünüzü korkutabilir ama başka yolu yok malesef ki ben kendi veritabanımı bu yolla yarım saatte editlemiştim.
    işleri hızlandırmak için bir tavsiye tablo içlerindeki her alanı editlemek zorunda değilsiniz sadece bozuk karakter olması muhtemel alanları editlemelisiniz.
    mesela yukardaki resimlere bakın attachment tablosunda bozuk karakter olabilecek alanlardan biri filename alanıdır ama orda diğer userid,dataline,visible gibi alanlarda tr karakter sorunu yoktur. bu yüzden userid,dataline gibi alanları editlemek için vakit harcamaya gerek yok. bu şekilde sadece gerekli alanları editlerseniz işlemler daha çabuk biter.
    editleme bittikten sonra geriye bir iş kalıyo o da localden veritabanı yedeğini alıp hostunuza yükleme.
    kolay gelsin...
    Bende işe yaradı arkadaşlar..C-Panelden Kendi İP nize erişim izni vermeyi unutmayın..Pleskte nasıl olur bilmiyorum
    3.yol
    Bazılarında Bu kadar Uğraşmaya Gerek Kalmıyor
    Settings.php'de
    Bul
    ?>
    Üstüne Ekle
    $db_character_set = 'latin5';
    kolaygelsin Benimki bu şekilde düzeldi