veritabanı taşıdık karakter sorunu

phpBB 2.0.x kurulum ve çalıştırılmasında meydana gelen sorun ve problemler için buradan yardım alabilirsiniz.
Kilitli
aykarama
Kayıtlı Kullanıcı
Mesajlar: 253
Kayıt: 18.05.2006, 01:39
İletişim:

veritabanı taşıdık karakter sorunu

Mesaj gönderen aykarama »

siteyi yeni hosta talıdık tüekçe karakterler kargacık burgacık oldu bunu tabloları edtleyerek düzeltebilirmiyiz cpanelden olabilirmi swish ci yazıyor karşısında tabloların bu topicleri türkçeye çebirmenin bir yolu varmı
Kullanıcı avatarı
cupra
Kayıtlı Kullanıcı
Mesajlar: 2505
Kayıt: 01.04.2006, 02:33
Konum: smyrna
İletişim:

Mesaj gönderen cupra »

turkish ci yapın dil kodumuz odur :)
aykarama
Kayıtlı Kullanıcı
Mesajlar: 253
Kayıt: 18.05.2006, 01:39
İletişim:

Mesaj gönderen aykarama »

ben aslında resimli bir anlatım yapsaydınız herkes yararlanırdı iyi olmazmı yanlış yapma riskni kaldırır
Thé AgiL3
Kayıtlı Kullanıcı
Mesajlar: 23
Kayıt: 10.05.2006, 20:03
İletişim:

Mesaj gönderen Thé AgiL3 »

türkçe karakter sorunu var diyerek ne kastettiğine bağlı bu durum. yani mesela saçma salak karakterler çıkıyorsa db'yi wordpad ile açıp, ctrl+h yapıp, saçma karakteri düzeltilcek karakter bölümüne dorusunu yazarak düzeltebilirsin. aynı şeyi ben de yaptım, sitemi bir serverdan bir diğerine taşıdım, bende de aynı sorun çıktı. soradan hallettik.
aykarama
Kayıtlı Kullanıcı
Mesajlar: 253
Kayıt: 18.05.2006, 01:39
İletişim:

Mesaj gönderen aykarama »

bu şekilde gerçekten olabilirmi ben o şekilde değilde sql tablolarından olurmu diye sormuştum dün akşam cupranın dediği gibi yaptım ama olmadı mesela latin 1 swish ci yazıyor tablolarda ben bunları latin 5 turkish ci yaptım değişiklik olmadı yani çok karışık topiclerdeki ve başlıklarındaki bu karakter bozukluklarını nasıl düzeltebileceğimiizi eğer resimli olarak ustalarım yada arkadaşlarım gösterebilirse daha açıklayıcı olur ben uğraştım olmadı
silpion
Kayıtlı Kullanıcı
Mesajlar: 8
Kayıt: 23.10.2006, 02:12
İletişim:

Mesaj gönderen silpion »

karakter bozukluklarını düzeltmek için Thé AgiL3'ün bahsettiği yöntem sanırım en başarılısı bu arada;
phpMyadmin'in karakter setinin latin5 olması,
kullandığın databasein karakter setinin latin5 olması,
her bir tablonun da karakter setinin latin5 olması,
ve
http://phpbbturkey.com/about5088.html&h ... t=karakter
adresinde
Frostmourne yazdı:sorunu hallettim arkadaşlar hemen paylaşayım :)

config.php

database bağlatısından sonra ekleyin,

Kod: Tümünü seç

$mysql_charset = 'latin5'; 
$collation_connection = 'latin5_turkish_ci';
includes\db.php

bu satırı bulun;

Kod: Tümünü seç

if(!$db->db_connect_id) 
{ 
   message_die(CRITICAL_ERROR, "Could not connect to the database"); 
}
sonuna bu kodları ekleyin;

Kod: Tümünü seç

// Set connection charset & collation for MySQL (based on phpMyAdmin) 
if( preg_match("/^mysql/i", SQL_LAYER) ) 
{ 
   $sql = 'SELECT VERSION() AS mysql_version'; 

   $result = $db->sql_query($sql); 
   $row = $db->sql_fetchrow($result); 
   $match = explode('.', $row['mysql_version']); 

   if (!isset($row)) 
   { 
      define('MYSQL_INT_VERSION', 32332); 
      define('MYSQL_STR_VERSION', '3.23.32'); 
   } 
   else 
   { 
      define('MYSQL_INT_VERSION', (int)sprintf('%d%02d%02d', $match[0], $match[1], intval($match[2]))); 
      define('MYSQL_STR_VERSION', $row['mysql_version']); 
   } 
   unset($result, $row, $match); 

   if ( MYSQL_INT_VERSION >= 40100 && isset($mysql_charset) ) 
   { 
      if (empty($collation_connection) || ( strpos($collation_connection, '_') ? substr($collation_connection, 0, strpos($collation_connection, '_')) : $collation_connection) == $mysql_charset ) 
      { 
         $sql = "SET NAMES $mysql_charset"; 

         if ( !($db->sql_query($sql)) ) 
         { 
            message_die(CRITICAL_ERROR, 'Could not set MySQL charset', '', __LINE__, __FILE__, $sql); 
         } 
      } 
      else 
      { 
         $sql = "SET CHARACTER SET $mysql_charset"; 

         if ( !($db->sql_query($sql)) ) 
         { 
            message_die(CRITICAL_ERROR, 'Could not set MySQL charset', '', __LINE__, __FILE__, $sql); 
         } 
      } 
      if ( !empty($collation_connection) ) 
      { 
         $sql = "SET collation_connection = '$collation_connection'"; 

         if ( !($db->sql_query($sql)) ) 
         { 
            message_die(CRITICAL_ERROR, 'Could not set MySQL collation connection', '', __LINE__, __FILE__, $sql); 
         } 
      } 
   } 
}
bu kadar :)

Saygılar.
denilenleri yapman gerekiyor.
bundan sonraki adım ise temiz bir başlık açıp bütün türkçe karakterlerin doğru olup olmadığını kontrol etmek. eğer bu adımda da bir sorun ile karşılaşmaz isen işin en meşakkatli ve fakat rahat kısmı geliyor.
...mysql/data/ klasörü içerisindeki sql uzantılı database dosyasını wordpad de açmak ve daha önceden bahsi geçen şeyi yapmak;
yani
saçma sapan görünen karakterleri olması gerekenler ile değiştirmek, ki "replace all" ya da "tümünü değiştir" komutu ile bu iş en çok 10 dakika sürecektir....

phptriad'dan apache2triad'a taşıdığım forumdaki karakter sorunu 1,5 günlük bir maceranın ardından yukarıda anlattığım gibi çözümlenmiş bulunmaktadır. konu ile ilgili söz söyleyen herkese teşekkürler...
aykarama
Kayıtlı Kullanıcı
Mesajlar: 253
Kayıt: 18.05.2006, 01:39
İletişim:

Mesaj gönderen aykarama »

yok arkadaşim hiç bunları yapmaya gerek yok ne notpad ne de bişi bak nette gezinirken ne buldum bi arkadaşımız aynı sorunla karşılaşmış ve kendi kendine şu sql sorgusunu geliştirmiş tam 2dk da veritabanı eski halinde benimki gibi 140 mb lık bir veritabanı bile 2 dk da bitti sql sorgusu şu

Kod: Tümünü seç

UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'ı', 'i'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'Ş', 's'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'ş', 's'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'ğ', 'g'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'ö', 'ö'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'ü', 'ü'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'ç', 'c'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'Ãœ', 'ü'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, '?', 'ü'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'Ç', 'c'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, '>', '>'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'Ö', 'ö'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, '̢۪', '`'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'ý;', 'i'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'þ', 's'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'ð', 'g'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, '?nce', 'önce'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, '?aresi', 'caresi'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'd?n?st?r', 'dönüstür'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 's?r?c?', 'sürücü'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'g?z', 'göz'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'b?y?k', 'büyük'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'L?tfen', 'Lütfen'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'l?tfen', 'Lütfen'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'T?rk?e', 'Türkce'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 't?rk?e', 'Türkce'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, '??z?l', 'cözül'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, '?ye', 'üye'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 't?m', 'tüm'); 
UPDATE phpbb_posts_text SET post_text = REPLACE(post_text, 'Þ', 'Ş'); 

bunları sorgulattıktan sonra bozuk karakter kalmıyor saatlerce notpad lede uğraşmıyorsun yani işin kısası bu ama benim ilgili arkadaşlardan bi isteğim var bu sql sorgusu mesaj içeriklerini düzeltiyor ama bana mesaj başlıklarınıoda düzeltecek sorgu da lazım mesaj başlıklarını değiştirmem için bu sql sorgusu nasıl değişmeli ilginizi bekliyorum.
silpion
Kayıtlı Kullanıcı
Mesajlar: 8
Kayıt: 23.10.2006, 02:12
İletişim:

Mesaj gönderen silpion »

phpbb_posts_text
yerine phpbb_topics yazmak yeterli olacaktır sanırım, yani değiştirilecek olan tablo adı. eğer forum başlıklarında da sorun varsa phpbb_forums yapmak gerekecektir mesela.
bu arada az evvel gönderdiğim mesajda bir hatayı daha doğrusu bir eksiği farkettim, database'de varolan hataları düzeltmek için öncelikle database'i sql uzantılı bir dosya haline getirmek, diğer bir değişle "export"(dönüştür) komutunu seçerek "save as a file"(dosya olarak kaydet) seçeneği ile bir sql sorgusu dosyası haline getirmek gerekiyor...
Kilitli

“2.0.x Destek Forumu” sayfasına dön

Kimler çevrimiçi

Bu forumu görüntüleyen kullanıcılar: Ahrefs [Bot] ve 0 misafir