mysql'da Utf-8 Karakterini Düzgün Tanımlamak

PHP, MySQL, HTML, CSS, SEO vb. ile ilgili genel konular.

mysql'da Utf-8 Karakterini Düzgün Tanımlamak

İleti EfSaNe 02.04.2006, 08:22

Gece 10 dan beri bunun için uğraşıyorum. yeni makineye geçeceğim. ama yeni makinedeki mysql ve phpmyadmin versiyonları


yeni makinedeki

phpMyAdmin 2.7.0-pl2
MySQL 4.1.11-standard

Eskisi ise

phpMyAdmin 2.6.3-pl1
MySQL 4.0.25-standard

Bunlardan ibaret. Şimdi Bu Forumda daha önce konu edinmiş. veritabanı Yedeği alıyorum herşey normal türkçe karakterlerde sorun yok. veritabanı açıyorum bir tane yazı karakterlerini latin5_turkish_ci olarak seçiyorum, Sonra backup'u atıyorum. Ama Bakıyorumki Türkçe Karakterler Bozulmuş. Belki Yedeği aldığımda düzelir ileride sorun yaşamam diyorum ama yedek aldığımda karakterleri bana bozuk şekilde veriyor yeni taşındığım makine. utf-8_turkish_ci Yapıyorum yedeği atıyorum, yine aynı karakter bozukluğu general_ci yapıyorum tekrar atıyorum, yine aynı sorun. Şu Anki Veritabanını Türkçe Karakterli bir şekilde Bu Makineye taşımamın bir yolu yokmu arkadaşlar ?? istiyorumki ileride başka yere taşınırsam yedek aldığımda bu karakterler bana dahada bozuk bir şekilde gelecek. bundan kurtulmanın yolu yokmu? Yardımlarınızı bekliyorum teşekkürler..
Kullanıcı avatarı
EfSaNe
Üye
Üye
 
İleti: 60
Kayıt: 02.11.2005, 17:23
Konum: İstanbul

İleti EfSaNe 02.04.2006, 09:32

Bir Tane Kodlama Buldum Ve Kendim Bir Kaç Karakter Ekledim. Sizlerde Yardımcı Olursanız ileride Bu Herkesin işine yarayan bir kodlama olacak diye inanıyorum arkadaşlar.. Sql daki yazı karakterlerini değiştiren kodlama.

Kod: Tümünü seç
<?
/* Büyük .SQL dosyalarında timeout olmaması için */
set_time_limit(0);

function duzelt($sql) {
// Değişecek karakterleri tanımla
$bozuk  = array("ü","þ","ý","ç","'ð","'Þ","Ð","Ö");
$duzgun = array("ü","ş","ı","ç","ğ","Ş","Ğ","Ö");
// Değiştirme işlemi
$degis  = str_replace($bozuk,$duzgun,file_get_contents($sql));
// *.sql dosyasını yeni haliyle kaydet
$islem = fopen($sql,'w+');
$yaz   = fwrite($islem,$degis);
fclose($islem);
echo'islem tamam. '.$sql.' basariyla duzeltildi';
// fonksiyon bitti.
}
// Örnek kullanım
// test.sql dosyasına chmod verilmeli
duzelt("test.sql"); /* script ile aynı dizinde olmali */
?>
Kullanıcı avatarı
EfSaNe
Üye
Üye
 
İleti: 60
Kayıt: 02.11.2005, 17:23
Konum: İstanbul

İleti emrag 02.04.2006, 10:25

bu kodun 5-10 mb üstü dosyalarda çalışacağını sanmam. hangi tarayıcıyı kullanırsan kullan kilitlenir işlem yarıda kalır.
emrag
Üye
Üye
 
İleti: 94
Kayıt: 05.10.2005, 16:25

İleti EfSaNe 02.04.2006, 13:53

Aslında Herhangi bir tarayıcıda açmıyor sadece işlem tamamlandı yazarak kendisi gönderim yapıyor ve değişim yapmaya devam ediyor. internette aramamla o kadar çok bu utf-8 mysql sorunu çıktıki karşıma sorunun çözümünü tam olarakta bulabilen olmamış. bu sorunun çözümü yokmu arkadaşlar. veritabanını 1 kullanım için çöpemi atacağız yani :S
Kullanıcı avatarı
EfSaNe
Üye
Üye
 
İleti: 60
Kayıt: 02.11.2005, 17:23
Konum: İstanbul


Internet Teknolojileri



Kimler çevrimiçi

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 0 misafir

cron