Hoş Geldiniz! 👋

Tüm özelliklerimize erişmek için şimdi bize katılın. Kaydolup giriş yaptıktan sonra konu oluşturabilir, mevcut konulara yanıt gönderebilir, diğer üyelerinize itibar kazandırabilir, kendi özel mesajlaşma programınızı edinebilir ve çok daha fazlasını yapabileceksiniz. Aynı zamanda hızlı ve tamamen ücretsizdir, peki daha ne bekliyorsunuz?

Kayıt Ol

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

Anlatım, öğretim, ders, kurulum, v.s

admin

www.hebele.net
Kurucu
6
HBL RANK
Konum
Türkiye
Konular
388
Katılım
2 Aralık 2024
Konular
388
Mesajlar
611
Çözümler
49
Reaksiyon puanı
356
Web sitesi
www.hebele.net
Meslek
Web
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)

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