👋 TRTURKA.COM’a Hoş Geldin!

Bilgi paylaşımına, keyifli sohbetlere ve yeni dostluklara hazır mısın? 😊

🌟 Aramıza katıl, ücretsiz üye ol ve topluluğumuzun bir parçası ol!

💬 Paylaş, keşfet, öğren ve dostluklar kur!

❤️ TRTURKA.COM ailesinde seni de görmekten mutluluk duyarız. İyi forumlar!

Forum sitemizde daha önce üyeliğiniz var ise şifresini ve mailini hatırlayamıyorsanız sosyal medya hesaplarımızdan bize ulaşabilirsiniz.

SMF Veri Tabanını Sorunsuzca UTF-8'e Dönüştürmek

Konu değerlendirmesi: SMF Veri Tabanını Sorunsuzca UTF-8'e Dönüştürmek 5 üzerinden 0.00 | Toplam oy: 0 | Görüntülenme: 1,430

Adanalı 5
Trturka Fenomeni Takdir Toplayan Trend Yaratıcı Eski Dost Takdir Edilen 2 Adımlı Giriş

TRTURKA
Administrator
20
TRTURKA RANK
Katılım
9 Haziran 2018
Konular
1,645
Mesajlar
5,891
Çözümler
1
Reaksiyon puanı
1,771
Puanları
113
Konum
Adana
Forum Yaşı
8 Yıl 149 Gün
Cinsiyet
Erkek
Kesinlikle yedek almadan bu işlemi yapmayın, eğer yedek almazsanız veri tabanınızı kaybedebilirsiniz. Kesinlikle bu konu hakkında hiçbir sorumluluk kabul etmiyorum, bunun çok riskli bir işlem olduğunu bildiğiniz gibi verilerinizi kaybedeceğinizi de bildiğinizi varsayıyorum.

1) Aşağıdaki PHP kodları veri tabanınıza erişerek tabloların karakter yapılarını UTF-8′e dönüştürüyor. Bu işlemi yapmak için: $dbuser, $dbpass, $dbname alanlarını eksiksiz doldurmanız gerekiyor. Düzenlemeden sonra kodları text tabanlı bir editörüde .php uzantısı ile kaydediniz ve sunucunuzun bir dizinine atarak çalıştırınız.

PHP:
<?php
// Database info
 
$dbhost = "localhost";
$dbuser = "k.adi";
$dbpass = "şifre";
$dbname = "vt_adi";
 
//&#8212;&#8212;&#8212;&#8212;&#8212;
 
header("Content-type: text/plain");
 
$dbconn = mysql_connect($dbhost, $dbuser, $dbpass) or die( mysql_error() );
$db = mysql_select_db($dbname) or die( mysql_error() );
 
$sql = "SHOW TABLES";
$result = mysql_query($sql) or die( mysql_error() );
 
while ( $row = mysql_fetch_row($result) )
{
$table = mysql_real_escape_string($row[0]);
$sql = "ALTER TABLE $table DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci, CONVERT TO CHARACTER SET utf8";
mysql_query($sql) or die( mysql_error() );
print "$table changed to UTF-8.\n";
}
 
mysql_close($dbconn);
?>

Tüm veri tabanı tablolarından başarılı sonuç aldığınızı gösteren satırlar ile karşılaştıktan sonra, PHPMyAdmin’de tablolarınızı kontrol ediniz ve onarınız. Artık 2. aşamaya geçebiliriz.

2) Yukarıdaki işlem sayesinde fazla uğraşmadan veri tabanı tablo yapısını UTF-8′e dönüştürdük. Şimdi tablo içerisindeki Türkçe karakterleri UTF-8 karşılıkları ile değiştireceğiz. Bu işlem sayesinde Türkçe karakterler gidecek, yerlerine UTF-8 karşılıkları gelecek. Kullanacağımız SQL sorgusunun mantığı çok basit fakat yaptığı işlevi çok önemli. Benim kullandığım eski karakter setim: latin1_swedish_ci’ydi. Bu işlem sonrası UTF-8 olacak.

Aşağıdaki SQL sorgusunu PHPMyAdmin panelinizin sorgu penceresinde çalıştırabilirsiniz.

Kod:
UPDATE TABLO_ADI SET ALAN_ADI= replace(ALAN_ADI, 'İ', 'İ')WHERE ALAN_ADI LIKE '%İ%';
UPDATE TABLO_ADI SET ALAN_ADI= replace(ALAN_ADI, 'ı', 'ı')WHERE ALAN_ADI LIKE '%ı%';
UPDATE TABLO_ADI SET ALAN_ADI= replace(ALAN_ADI, 'Ö', 'Ö')WHERE ALAN_ADI LIKE '%Ö%';
UPDATE TABLO_ADI SET ALAN_ADI= replace(ALAN_ADI, 'ö', 'ö')WHERE ALAN_ADI LIKE '%ö%';
UPDATE TABLO_ADI SET ALAN_ADI= replace(ALAN_ADI, 'Ü', 'Ü')WHERE ALAN_ADI LIKE '%Ü%';
UPDATE TABLO_ADI SET ALAN_ADI= replace(ALAN_ADI, 'ü', 'ü')WHERE ALAN_ADI LIKE '%ü%';
UPDATE TABLO_ADI SET ALAN_ADI= replace(ALAN_ADI, 'Ç', 'Ç')WHERE ALAN_ADI LIKE '%Ç%';
UPDATE TABLO_ADI SET ALAN_ADI= replace(ALAN_ADI, 'ç', 'ç')WHERE ALAN_ADI LIKE '%ç%';
UPDATE TABLO_ADI SET ALAN_ADI= replace(ALAN_ADI, 'ÄŸ', 'ğ')WHERE ALAN_ADI LIKE '%ÄŸ%';
UPDATE TABLO_ADI SET ALAN_ADI= replace(ALAN_ADI, 'ÄŸ', 'Ğ')WHERE ALAN_ADI LIKE '%ÄŸ%';
UPDATE TABLO_ADI SET ALAN_ADI= replace(ALAN_ADI, 'ÅŸ', 'ş')WHERE ALAN_ADI LIKE '%ÅŸ%';
UPDATE TABLO_ADI SET ALAN_ADI= replace(ALAN_ADI, 'Å', 'Ş')WHERE ALAN_ADI LIKE '%Å%

Şu konuda sizi bilgilendirmek istiyorum, yukarıdaki kodların yerleşimi kullandığınız karakter setine göre değişiyor. Hangi karakterleriniz hatalı olarka gözüküyorsa onların yerine UTF-8 karşılıklarını koyuyorsunuz.Ben yukarıdaki sorgularda “İ” gördüğün yere “İ” koy dedim. Sizde yerleştirmeleri ona göre yapınız.

NOT: Bu işlemi localhost phpmyadmin'de uygulamanızı öneriyorum, yukarıdaki işlemleri yaptıktan sonra veri tabanı yedeğini export yapın. Daha sonra UTF-8 Dil dosyalarını forumunuzun languages klasörüne atın. Daha sonra BAKIM>>VERİ TABANI>>FORUM DİLİNİ UTF-8' e DÖNÜŞTÜR seçeneğini kullanın. En son olarak veri tabanının tüm bakımlarını yapın. Eğer UTF-8'e dönüştür seçeneğinde sorun çıkarsa yukarıda export etmiş olduğunuz yedeği import yaparakta kullanabilirsiniz. Ayrıca forumun dil seçeneklerini UTF-8 Turkish yapmayı unutmayın.
 

Konuyu toplam 0 üye okuyor. (0 Kayıtlı üye ve 0 Misafir)

Benzer konular

Sitemiz bir forum sitesi olduğu için kullanıcılar her türlü görüşlerini önceden onay olmadan anında siteye yazabilmektedir. 5651 sayılı yasaya göre bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. 5651 sayılı yasaya göre sitemiz mesajları kontrolle yükümlü olmayıp, yasaya aykırı yada telif hakkı içeren paylaşımlar BURADAN bize ulaşıldığı taktirde, ilgili konu en geç 48 saat içerisinde kaldırılacaktır. Sitemizde Bulunan Videolar YouTube, Facebook, Dailymotion, v.b. video paylaşım sitelerinden alınmaktadır. Telif hakları sorumluluğu bu sitelere aittir. Videoların hiç biri sunucularımızda bulunmamaktadır.
  • Geri
    Üst