Simple Machines Community Forum

SMF Support => Language Specific Support => Türkçe Bölümü (Turkish) => Topic started by: temkick on April 30, 2007, 06:23:17 AM

Title: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: temkick on April 30, 2007, 06:23:17 AM
2 gün boyunca türkçe karakter sorununu çözemediğim için forumum kapalı kaldı...Googlenin altını üstüne getirdim burda arama yaptım ama hiç biri işine yaramadı..Sonunda aramalarım sonuç verdi ve bu tür sıkıntı yaşayan tüm arkadaşların işine yarayacak bir methot buldum..Anlatım tamamen alıntıdır ve hazırlayan arkadaştan Allah razı olsun...Yazıyı Dikkatle incelerseniz eminim sizin sorununuzda düzelecektir....


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 (http://www.heidisql.com/download.php)

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 )

(http://img337.imageshack.us/img337/6593/32842955hs8.jpg)

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.

(http://img337.imageshack.us/img337/772/63429129he1.jpg)

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 '%Ä�%';


(http://img337.imageshack.us/img337/302/43685224sr1.jpg)

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...

ALINTI...

Bende işe yaradı arkadaşlar..C-Panelden Kendi İP nize erişim izni vermeyi unutmayın..Pleskte nasıl olur bilmiyorum :D
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm - -ALINTI
Post by: renkliforum on April 30, 2007, 05:32:05 PM
plesk için bilgisi olan varsa lütfen bizimle paylaşsın. Program kilitlenip kalıyor. Ulaşamıyorum bir türlü
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm - -ALINTI
Post by: Gezgin-® on April 30, 2007, 06:05:39 PM
En güzel çözüm. Phpmyadminden geri yüklemek. Kesin vede tek çözüm. latin1, latin5. utf8 bir tanesini deneyeceksin.
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm - -ALINTI
Post by: temkick on April 30, 2007, 06:56:35 PM
Quote from: Gezgin-® on April 30, 2007, 06:05:39 PM
En güzel çözüm. Phpmyadminden geri yüklemek. Kesin vede tek çözüm. latin1, latin5. utf8 bir tanesini deneyeceksin.

Yurt Dışı lokasyonlu hostinglerde pek işe yaramıyor bu karakter seti seçimi...Ben 2 gün boyunca latinler dahil bütün karakter setleriyle denedim olmadı...En son bunu buldum nette ve yarım saatte 50 MB lık veri tabanımdaki bütün sorunlu karakterleri düzelttim...
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm - -ALINTI
Post by: KraL1 on May 01, 2007, 06:59:19 AM
arkadaslar bende forumu tasiyinca tr karakterler ? seklinde cikiyor sadece aldigim yedekleri yeniden yükleyince oluyor
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm - -ALINTI
Post by: asosweb on May 01, 2007, 07:35:28 AM
Arkadaşlar bunun kesin çözümü phpmyadminden yedeğinizi latin5 olarak yükleyeceksiniz daha sonrada settings.php nin en altına yani ?> bundan önce şu kod olması lazım
$db_character_set = '  '; bu kodda '  ' arasına latin5 yazıyorsunuz yani şu şekilde olacak
$db_character_set = 'latin5'; eğer bu kod satırı yoksa
?> bunun hemen önüne $db_character_set = 'latin5'; bu kod satırını ekleyin işlem tamamdır ancak muhakkak phpmyadmin ile atarken latin5 olarak atmanız gerekiyor.

Saygılarımla
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm - -ALINTI
Post by: özgür şahin on June 18, 2007, 08:02:26 PM
Boşverin böyle uzun şahşahalı işleri...

Açın settings.php'nizi,
Bul
?>

Hemen üzerine ekle :
$db_character_set = 'latin5';

Kolay gelsin.
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm - -ALINTI
Post by: husmen73 (Gulhin) on June 19, 2007, 02:56:56 AM
Programı kullanmaya bile gerek yok.

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 '%Ü%';


bu kodları phpmyadminde ki sql sorgusu çalıştırma bölümünden yapabilirsiniz.

Bilgi: update [tabloadı] set [alanadı] = replace([alanadı],'[değiştirilmesi istenen bilgi]','[yerine konacak bilgi]');

Arkadaş bu bilgiyidfe bize vermiş. Kolayca hepsini yapabilirsiniz. Mesajlar için mesela şu kodları yapmalısınız;

update smf_messages set body = replace(body,'ı','i');      [Bu kod ile ı harfini i 'ye dönüştürdüm.]
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm - -ALINTI
Post by: Arbalot on June 19, 2007, 04:57:22 AM
yanlız söyle bir durumda vardır ki bilgiler veritabanına utf8 olduğunda ş şeklinde kaydedilir
diğer kodlamalarda farklı biçimde kaydedilir...
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: di_jean on July 03, 2007, 12:54:54 PM
arkadaşlar aynı sorun bendede var yedek db yi yeni host a attığımda  sapıtıyo yedeği mi  düzgün atamıyoz acaba ya :S
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: suleyman_eren on July 06, 2007, 02:36:15 PM
Quote from: osahin on June 18, 2007, 08:02:26 PM
Boşverin böyle uzun şahşahalı işleri...

Açın settings.php'nizi,
Bul
?>

Hemen üzerine ekle :
$db_character_set = 'latin5';

Kolay gelsin.


2: Compilation failed: invalid UTF-8 string at offset 39
Dosya: /var/www/vhosts/imamhatipliyiz.biz/httpdocs/forum/Sources/Subs.php
Satır: 2435
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: sancars on July 15, 2007, 05:19:42 PM
Ben forumu sıfır kurdum... sıfır forumu türkçe kurduğum halde TR karakter sorunu yaşıyorum !!

www.kepsut.org bakabilirseniz sevinirim...

HELP MEEE !!
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: husmen73 (Gulhin) on July 15, 2007, 06:17:57 PM
Quote from: sancars on July 15, 2007, 05:19:42 PM
HELP MEEE !!
Help me ne demek? Forum kurallarına lütfen uyunuz. Sitenizde herhangi bir sorun göremedim.

Bu arada bende kepsutluyum :)
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: sancars on July 15, 2007, 06:56:45 PM
QuoteHelp me ne demek? Forum kurallarına lütfen uyunuz. Sitenizde herhangi bir sorun göremedim.

Bu arada bende kepsutluyum :)

MSN : [email protected]    tanışmak isterim...

sorunu giderdim Teşekkürler
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: edecan on July 17, 2007, 06:47:05 AM
Valla helal olsun arkadaş uzun uzun anlatacağına kısa yolu varmış
Ama kardeş yinede emeğine sağlık
herkesin emeğine sağlık
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: pspturkey on July 28, 2007, 11:20:25 AM
Ben husmen arkadaşın söylediğini yaptım ama sonuç alamadım. phpmyadminde şöyle bir hata var:

SQL sorgusu:

UPDATE attachment SET filename = REPLACE( filename, 'Ü', 'Ü' ) WHERE filename LIKE '%Ü%'

MySQL çıktısı: 

#1146 - Table 'psptynet_abc.attachment' doesn't exist

Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: husmen73 (Gulhin) on July 29, 2007, 05:09:44 AM
Quote from: pspturkey on July 28, 2007, 11:20:25 AM
Ben husmen arkadaşın söylediğini yaptım ama sonuç alamadım. phpmyadminde şöyle bir hata var:

SQL sorgusu:

UPDATE attachment SET filename = REPLACE( filename, 'Ü', 'Ü' ) WHERE filename LIKE '%Ü%'

MySQL çıktısı: 

#1146 - Table 'psptynet_abc.attachment' doesn't exist


attachment tablosunun olmadığını söylüyor. Önce veritabanınıza tıklayın ve tablolar listelensin, öyle sorguyu çalıştırın.
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: fabianevam on August 16, 2007, 10:56:40 AM
Quote from: husmen73 on June 19, 2007, 02:56:56 AM
Programı kullanmaya bile gerek yok.

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 '%Ü%';


bu kodları phpmyadminde ki sql sorgusu çalıştırma bölümünden yapabilirsiniz.

Bilgi: update [tabloadı] set [alanadı] = replace([alanadı],'[değiştirilmesi istenen bilgi]','[yerine konacak bilgi]');

Arkadaş bu bilgiyidfe bize vermiş. Kolayca hepsini yapabilirsiniz. Mesajlar için mesela şu kodları yapmalısınız;

update smf_messages set body = replace(body,'ı','i');      [Bu kod ile ı harfini i 'ye dönüştürdüm.]

kardeş ben anlamadığım için yapamadım size kolay gelebilir resimli kolay bir anlatım yaparsanız çok sevinirim
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: husmen73 (Gulhin) on August 17, 2007, 01:29:02 PM
~fabianevam 
Yukarıdaki programı kullanın.
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: ISIL on September 08, 2007, 01:36:15 AM
Forumun Admin penlinden DB lerinizin yedeklerini alın bence sorun yaşamayacaksınız.
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: N_A_T_O on September 08, 2007, 03:21:57 AM
arkadaslar host değişikliği yuzunden bende battım  allah rızası ıcın bana yardım edebılecek bırı yokmu..

ben yabarım dıyen bırı cıksa
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: husmen73 (Gulhin) on September 08, 2007, 06:18:51 PM
Beyler/Bayanlar ilk mesajda verilen tablo ismi sadece örnektir. Kendi tablo isminizi yazınız. Varsayılan olarak smf_attachments tablosu mevcuttur, ek dosyalar için.
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: kurnaz on September 22, 2007, 05:20:43 PM
arkadaşlar ben forum bakımı bölümünden karakter setini değiştirdim ama şimdi düzeltemiyorum yaa çok fena oldu bi bakın burdan (http://www.manyaqgenclik.com)    lütfen bana yardımcı olun msn adresimi veriyorum ekleyin lütfen minnettar olurum kurtarmam lazım bunu [email protected]
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: kurnaz on September 22, 2007, 05:43:07 PM
(http://img170.imageshack.us/img170/4052/daslo2.png)


böyle bi hata çıkıyo ne bu
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: kontrolkalemi on September 30, 2007, 11:39:53 AM
arkadaşlar bu kadar emek harcamanıza  gerek yok

bozuk karekterli yedeginizi ana dizine atın ve sitenize shh ile bağlanın
yedeğimizin adı forum_yedek.sql  olsun
shh ile aşağıdaki kodu çalıştırın veri tabanınız karekter sorunu olmadan yüklenecektir.


mysql -u dbkullanıcıadı -p dbadı < forum_yedek.sql

dbadı yazan yere veri tabanınızın adı
dbkullanıcıadı yazan yerede veri tabanınızın kullanıcı adını yazın
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: sancars on October 08, 2007, 12:03:16 PM
Merhabalar !!

SMF siteyi başka bir servera taşıdım...

FTP ve DB yedeklerini aldım...

DB yedeği latin1_sweden_ci olarak gözüküyor...

124 mb lik SQLDumpSplitter ile 25 parçaya böldüm ve bigdump.php ile  yüklemeye uğraştım fakat,

Karakter gurubu uyumsuzluğu hatası aldım....

latin1_sweden_ci olan DB yi latin1 olarak yüklemem gerekiyormuş..

yenis servera DB yi nasıl yükleyebilirim... başka bir yöntem bilen var mı veya  latin1_sweden_ci olan veritabanımı nasıl yüklerim...

Saygılarımla..
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: dberdi on October 18, 2007, 09:58:07 AM
arkadaşlar, bununla ilgili kesin çözüm diye bir yazı yazdım mysql control center ile bunu çözüyorsunuz zaten, yazımı okuyun ve yapmaya çalışın gayet açık bir biçimde yazdım, adımları teker teker izleyin, size şunu söyleyim bu işlem en fazla maksimum süreceği 5-8 dakikadır. utf imiş latin 1 olacakmış latinden utf ye döncekmiş yükleme olmuyomuş bunlar hiç sorun değil, yazdığım yazıyı okuyun, eğer yapamazsanız beni ekleyin sorununuz neyse ben halledeyim, smf den bir sürü onlarca kişi şu an msn listemde ekli, hepsinde tr karakter sorunu vardı, sorunu düzeltemezseniz msn listenize ekleyin beni db yi rarlayın yollayın, yedeğin smf adminden yada php myadminden alınıp alınmadığı önemli değil.

bunun içinde 2 gün forumunun kapalı kalmasına gerek yoktu, burdan arama yapsaydın, sorununu zaten çözecektin :)

http://www.simplemachines.org/community/index.php?topic=116963.0
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: qwerty35 on October 30, 2007, 08:53:14 PM
Quote from: kontrolkalemi on September 30, 2007, 11:39:53 AM
arkadaşlar bu kadar emek harcamanıza  gerek yok

bozuk karekterli yedeginizi ana dizine atın ve sitenize shh ile bağlanın
yedeğimizin adı forum_yedek.sql  olsun
shh ile aşağıdaki kodu çalıştırın veri tabanınız karekter sorunu olmadan yüklenecektir.


mysql -u dbkullanıcıadı -p dbadı < forum_yedek.sql

dbadı yazan yere veri tabanınızın adı
dbkullanıcıadı yazan yerede veri tabanınızın kullanıcı adını yazın

malesef shh erişimiz yok olsa konsoldan 2 dkda halledecekdik :S
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: sifirforum.com on November 20, 2007, 09:12:23 AM
karakter sorununun sebebi bir kaç sebebe dayanabilir.

çözümlerden biri de şudur:

database in yedeğini alırken encoding olarak utf8_unicode u seçin.

yeni yerinizdeki database i yaratırken ise phpmyadmin Collation sekmesini utf8_unicode_ci yi seçin.

database i backup restoree etmek için mysqldumper adlı programı oneririm.
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: mmoturkiye on December 24, 2007, 04:09:42 PM
Bu kadar kasmaya gerek yokki mysql dumper diye ücretsiz bi script var.Sorunsuz ve çok hızlı şekilde yedek alıyor.300 MB 'lık yedeği 9-10 dakikada alıyor.İsterseniz ftp tutarsınız(9-10 dakiakda ftp ye kayıt ediyor) isterseniz indirirsiniz.Siz indirebiliyorsunuz...Gzip olarak yedek alıyor...
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: uyelken on February 27, 2008, 02:32:15 PM
ya baslayayim olmuyor hicbirsey anlamiyorum oralardan lutfen bir bakin ben admin panelinden forum bakimindan utf-8 e cevir diye bir yere tikladim ve sonuc bu www.forumcambazi.info r
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: nickimyoq on August 31, 2008, 12:01:00 PM
pek iyi bir çözüm değil harfleri tek tek değiştirmek
ben bu harf değiştirmeyi yaptım ama sanırım harflerin karşılıkları hatalı verilmiş. harfler farklı şekilde değiştirildi :( mesela Ü yerine Ö ğelmiş çünkü ikisinin de benim sqldeki karşılığı Ã?
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: can_bey_81 on January 17, 2009, 11:35:59 AM
Quote from: husmen73 (Gulhin) on June 19, 2007, 02:56:56 AM
Programı kullanmaya bile gerek yok.

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 '%Ü%';


bu kodları phpmyadminde ki sql sorgusu çalıştırma bölümünden yapabilirsiniz.

Bilgi: update [tabloadı] set [alanadı] = replace([alanadı],'[değiştirilmesi istenen bilgi]','[yerine konacak bilgi]');

Arkadaş bu bilgiyidfe bize vermiş. Kolayca hepsini yapabilirsiniz. Mesajlar için mesela şu kodları yapmalısınız;

update smf_messages set body = replace(body,'ı','i');      [Bu kod ile ı harfini i 'ye dönüştürdüm.]

hocam bende bu sorgu çalışmıyor.
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: 22646 on April 18, 2009, 12:56:23 PM
Arkadaşlar olmuyor. Anlatılan tüm yöntemleri denedim amna sonuç hep aynı. Bu konu ile ilgili neredeyse girmediğim site kalmadı ama sonuç nafile.

Sistem freehost'taydı ben ücretli hosta geçmek için yedeklerimi aldım. SQL yedeği + FTP local'de düzenleme yapmak için db'i impot ettim ama türkçe karakter sorunu ortaya çıktı ne yapacağımı bilmiyorum artık. Denemediğim import proğramı kalmadı
-rfsplitter
-Xt-SqlCutter
-sql dumper spliter
-bigdump.php
-veritabani geri yukle

bunlar sadece sayabildiklerim bir çok proğram denedim. Bu proğramlar sayesinde sorunu çözen kişiler var. Ama benim yaptığım işlemlerde sorunu çözenlerle aynı. Birçok sitede kesin çözüm yazıyo  ama hiçbiride kesin çözüm değil.

Bu konu olan sitelerin hepsine mesaj attım ama nedense ben mesaj attıktan sonra milletin sesi soluğu kesildi :( Ne yapacaımı bilmiyorum son ve tek umudum bu sitede sorunumu sizlerle paylaşmak.
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: βluΣ ЯosΣ on April 18, 2009, 01:02:05 PM
siteye kurduktan sonramı tr karakter hatası alıyosun

site adresi
kullandıgın dil utf8 mi tr mi
settings php de dil le  ilgili bişey ekledinmi

Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: 22646 on April 20, 2009, 02:32:01 PM
Arkadaşım öncelikle cvp verdiğin için teşekkür ederim.

Benim sitem freehostta host firmasıda alman bir firma olduğu için dil kodlaması ona göre değişiyor.
Ben sistemi ücretli hosta geçirmek istiyorum önce host ve domaini almayı düşünüyordum ama sonradan localde kurup düzenleme yapmak istedim iyikide denemişim. Herşey normal diğer sunucudaki tüm dosyaları olduğu gibi locale attım. Settings php dosyasını locale göre düzenledim. Sonra bigdump.php dosyasını kullanarak eski sql'imi upload ettim forumu açtığımda türkçe karakter sorunu olduğunu gördüm. Birçok dosya ve yöntem denedim ama hala bir sonuç alamadım site localde bekliyor türkçe karakter sorunu ortadan kalkınca siteyi açacağım. Ama bunuda nasıl çözeceğimi hiç bilmiyorum neredeyse webmaster destek sitelerinin tümüne sorunumu bildirdim fakat hiçbirinden cvp alamadım.
Siteyi pm olarak gönderiyorum yardımlarınız için şimdiden teşekkür ederim

Saygılarımla...
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: Özgür on April 21, 2009, 01:46:30 AM
Quote from: Arbalot on June 19, 2007, 04:57:22 AM
yanlız söyle bir durumda vardır ki bilgiler veritabanına utf8 olduğunda ş şeklinde kaydedilir
diğer kodlamalarda farklı biçimde kaydedilir...
Ben bunu tam oalrak anlayamadım. Veritabanı utf8 oluna türkçe karakterler kendi karşılıkları şeklinde mi oluyor ? Yani ş = ş veya ı = ı gibi? Ben

Ü <=>  Ü
Ş <=> ÅŸ
Ğ <=> ÄŸ
Ç <=> Ç
ݠ <=> İ
Ö <=> Ö
ü <=> ü
ş <=> ÅŸ
ğ <=> ÄŸ
ç <=> ç
ı  <=> ı
ö <=> ö

Şeklinde biliyordum. Veritabanında bu farklı mı ? Eğer öyleyse sitemdeki çok büyük bir hatayı düzeltme imkanım olacak. :)
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: zeggy_557 on April 20, 2010, 11:44:05 AM
#1270 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT), (latin5_turkish_ci,COERCIBLE), (latin5_turkish_ci,COERCIBLE) for operation 'replace'

bu uyarıyı alıyorum bu yöntemi deneyince. ne yapmam gerekir?
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: KraL1 on August 28, 2010, 07:04:10 AM
Öncelikle burda yazilanlarin cogu dogru degil hic bir program kulanmaniza gerek yok
yapacaginiz turkish utf8 dil dosyasi kulanmak ben yaptim sorunsuz oldu turkish dil dosyasi kulanirsaniz sorun yasarsiniz yedegi cpanelden alin phpmyadminden yükleyin yüklerken sadece utf secili olsun daha sonra yukarda arkadasinda bahsettigi gibi settings.php dosyasini acin en altta su kodu kontrol edin

$db_character_set = 'utf8';

burda mutlaka utf8 yazmasi gerekir ben denedim sorunsuzda oldu www.tatliruya.com/forum dileyen bakabilir

eger latin5 vs kulanirsaniz sorun yasarsiniz bu bahsetigim  SMF 2.0 RC3 kurulumu icin gecerlidir diger kurulumlari denemedim yanlis bilgi vermek istemem SMF 2.0 RC2 - SMF 2.0 RC3 sürümlerinde denenmisdir

Herkese iyi calismalar...
Title: Re: MYSQL Türkçe Karakter Sorununa Kökten Çözüm [Karakter Değiştirme]
Post by: yol on January 30, 2021, 10:00:34 AM
Quote from: zeggy_557 on April 20, 2010, 11:44:05 AM
#1270 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT), (latin5_turkish_ci,COERCIBLE), (latin5_turkish_ci,COERCIBLE) for operation 'replace'

bu uyarıyı alıyorum bu yöntemi deneyince. ne yapmam gerekir?

11 yıl geçmiş ama birine lazım olur diye yazıyorum;

attachment tablosunun ve/veya filename sütunun karakter setini latin1_swedish_ci'den latin5_turkish_ci'ye çevirmen lazım diyor ama latin5 yerine utf8 yapmanı öneririm.

aşağıdaki sorguyu information_schema veritabanında çalıştırdığınızda tabloların hepsinin ve bütün sütunlarının karakter setini değiştirecek olan sorguları listeleyebilirsiniz.

SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') as stmt
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = 'veritabani_adi'
ORDER BY 1

sonra üretilen sorgu satırlarını alıp phpmyAdmin'de istediğiniz veritabanı üzerinde çalıştırırsanız bütün tablolarınızın ve kolonlarınızın karakter seti değişecektir.