Türkçe karakter problemi, MySQL - SORUN ÇÖZÜLDÜ

phpBB 2.0.x dil ve MOD Dosyalarını Türkçeleştirme bölümü. Lütfen bu foruma mesaj ya da başlık göndermeden önce [url=http://www.phpbbturkey.com/about5385.html:2e3bn3ui]Türkçeleştirme forumunun kullanımı hakkında bilgi[/url:2e3bn3ui] başlığını okuyunuz.
Danila
Kayıtlı Kullanıcı
Mesajlar: 16
Kayıt: 28.01.2007, 16:40
İletişim:

Türkçe karakter problemi, MySQL - SORUN ÇÖZÜLDÜ

Mesaj gönderen Danila »

TÜRKÇE KARAKTER SORUNUM ÇÖZÜLDÜ. BİR KEZ DAHA TOPARLIYORUM:

:arrow: Ayrıntılı bilgi için şu kaynağa bakabilirsiniz: Türkçe karakter sorunları, MySQL, vs.

ÖZET:

1. Dil paketimde bir sorun yoktu. "phpbb_**********.226.lang_turkish" dil paketini indirdim. Kurulumdan önce forumun klasöründeki tüm dosyaları açıp kontrol ettim.
Bazı dosyalarda iso-8859-9 ifadesi yerine iso-8859-1 ifadesinin kullanıldığını gördüm. Sonuç olarak iso-8859-9 ifadesinin yerleştirilebileceği ve benim de yerleştirdiğim/olduğu gibi bıraktığım dosyalar aşağıdaki gibidir:
admin / page_header_admin.php
cache / index.htm
db/ index.htm
images / index.htm
images / avatars / index.htm
images / avatars / gallery / index.htm
includes / functions.php – sayfanın başında değil, fakat kodun ilerleyen kısımlarında saklanıyor
includes / index.htm
includes / page_header.php
language / index.htm
language / lang_turkish / index.html
language / lang_turkish / lang_main.php
templates / subSilver / index.html
templates / index.htm
templates / subSilver / overall_header.tpl
templates / subSilver / simple_header.tpl
templates / subSilver / admin / index.htm
templates / subSilver / admin / index_frameset.tpl
templates / subSilver / admin / page_header.tpl
templates / subSilver / images / index.htm
templates / subSilver / images / lang_turkish/ index.html
language / lang_turkish / email / klasöründeki tüm dosyalar

Bu uzun çalışmanın ardından sorunum yine çözülmedi.

Fakat ne zaman ki lang_main.php dosyasındaki 8859-9 ifadesini 8859-1 olarak değiştirdim “İ” harfleri normal göründü, bu sefer sayfanın diğer yerlerindeki karakterler (örneğin forumdaki “toplam misafir sayısı” gibi bir metindeki karakterler) bozuk göründü.

Fakat bu sefer, bazı forum dosyalarında (overall_header.tpl gibi) bulunan {S_CONTENT_ENCODING} ifadesini "iso-8859-9" ile değiştirdiğimde; yani Internet Explorer gibi programların dili otomatik olarak seçmesini değil de, özellikle “iso-8859-9" ayarını kullanmasını sağladığımda; veya Internet Explorer programının “görünüm / dil kodlaması” ayarından Türkçe’yi seçtiğimde problem çözüldü.

Fakat bu şekilde ileride veritabanın yedeğini alırken vb. işlemlerde sorunun çıkabileceğini öğrendim. Yani sorunuma henüz çözüm bulamamıştım.

Bu arada neden 8859-1 dil setinde “ç” “şâ€ gibi harfler görünürken “İ”, “Ğ” gibi harfler görünmüyor? Çünkü iso-8859-1 dil seti “ç” ve “şâ€ gibi harfleri okuyabiliyor. Bu harfler 8859-1’nin desteklediği diğer dillerde de var. Ama Türkçe’ye özgü diğer harfler (“İ” gibi) 8859-1 tarafından desteklenmiyor. Problemin yaşanmaması için 8859-9’u kullanmak gerekiyor.

2. Foruma yazdığım başlıklar ve yeni açtığım konular veritabanında saklanıyor. Veritabanında veya veritabanı ile olan bağlantıda sorun varsa doğal olarak karakterler bozuk görünüyor.

Veritabanın idare edildiği kontrol panelinden veritabanın dil kodlamasını kontrol ettim. Türkçe karakterlerin sorunsuz gözükmesi için "iso 8859-9"a tekabül eden "latin5" karakter setinin kullanılması gerekiyor. Veritabanın nasıl kontrol edildiğini bilmiyorsanız hosting firması ile görüşmenizi tavsiye ederim. Benim veritabanım latin5 karakter setine ayarlıydı, ama problem devam ediyordu.

Hosting firmasıyla yaptığım sözlü görüşmede sunucumun Türkçe dilini ve phpBB'yi desteklediğini öğrendim. Bu kadar uğraşmama rağmen soruna çözüm bulamayınca hosting firmasıyla yazıştım. Bunun üzerine, sadece sunucu sahipleri (hosting firması) tarafından değiştirilebilen php.ini (bu dosyanın bilgisayardaki konumunu/adresini bilmiyorum, bilen varsa paylaşsın) ve httpd.conf (c:\Program Files\Apache Group\Apache2\conf\httpd.conf) dosyalarının içindeki ISO-8859-1 ifadesini ISO-8859-9 ile değiştirdiler.

Okuduğum kadarıyla "httpd.conf" dosyasındaki "AddDefaultCharset ISO-8859-1" satırının "AddDefaultCharset ISO-8859-9" satırı ile değişmesi gerekiyor.

Sorunum devam etti.

3. Son olarak, sorunun veritabanından kaynaklandığını düşündüğümden bir yerde bulduğum şu kodu denedim:

“includes/db.php

// Make the database connection.
$db = @new sql_db($dbhost, $dbuser, $dbpasswd, $dbname, false);
mysql_query("SET NAMES 'latin5'");
mysql_query("SET CHARACTER SET latin5");
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");

Sorunum çözüldü.
İlginiz için teşekkür ederim. Kolay gelsin.
En son Danila tarafından 10.03.2008, 22:10 tarihinde düzenlendi, toplamda 6 kere düzenlendi.
Kullanıcı avatarı
ESQARE
Web Sitesi Yöneticisi
Web Sitesi Yöneticisi
Mesajlar: 6971
Kayıt: 18.09.2005, 20:51
İletişim:

Mesaj gönderen ESQARE »

mySQL 4 ve öncesi sürümlerden mySQL 4 sonrası sürümlere veriler gönderildiği zaman bu problem oluşuyor.

Burada konuyla ilgili bir makale var: http://www.dmry.net/mysql-turkce-karakter-problemi
Resim
phpBB Eklenti Kurulumu | Kurallar | phpBB3 İzinleri | Otel Rehberi

Kurallarımız gereği lütfen özel mesaj ile yardım istemeyiniz, cevap vermiyoruz.
Danila
Kayıtlı Kullanıcı
Mesajlar: 16
Kayıt: 28.01.2007, 16:40
İletişim:

Mesaj gönderen Danila »

Merhaba Esquare,

Makaleyi okudum, fakat sizin verdiğiniz açıklamayla tam bağlantı kuramadım. Makalede, böyle sorunların MySQL 4 sonrası sürümlerde görüldüğü yazıyor.

Siz ise bu problemin, mySQL 4 ve öncesi sürümlerden mySQL 4 sonrası sürümlere veriler gönderildiği zaman görüldüğünü belirttiniz.

Sanırım bir yerde yanlış anladım. Veriler bir veritabanından diğer bir veritabanına nasıl gönderilir ki? Veriler PHP kodları yardımıyla doğrudan bir tek veritabanına gönderilmez mı?

Danila
En son Danila tarafından 04.02.2007, 19:08 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
ESQARE
Web Sitesi Yöneticisi
Web Sitesi Yöneticisi
Mesajlar: 6971
Kayıt: 18.09.2005, 20:51
İletişim:

Mesaj gönderen ESQARE »

Eğer veritabanınız daha önce eski bir MySQL sürümü kullanıyorsa ve daha sonra yeni sürüme güncellendiyse, ve siz bu güncellenen mySQL veritabanına verileri gönderdiyseniz, bu sorunu yaşamanız olasıdır demek istedim.
Resim
phpBB Eklenti Kurulumu | Kurallar | phpBB3 İzinleri | Otel Rehberi

Kurallarımız gereği lütfen özel mesaj ile yardım istemeyiniz, cevap vermiyoruz.
alptekin_n
Kayıtlı Kullanıcı
Mesajlar: 2
Kayıt: 08.03.2007, 02:29
İletişim:

Mesaj gönderen alptekin_n »

Ne kadar teşekkür etsem azdır herhalde...

ben de mysql 4.1 kullanıyorum ve ne yaptıysam bir türlü türkçe karakterlere çözüm bulamıyordum.

her türlü database ayarını denedim, dil kodlamalarıyla uğraştım. sırf bu yüzden forum değiştirdim :)

yukarıdaki kodu db.php ye ekleyince sorun çözüldü :D

çooooookk teşekkürler Danila.... bir de kolay yoldan mod yükleme işini halletsek tam süper olucak. daha önceden SMF kullanıyodum ben. türkçe karakter sorunu yüzünden değiştirdim. ama SMF nin mod yükleme işi çok kolaydı. herşey admin panelinden halloluyo, gerçi henüz pek uğraşmadım ama phpbb de anladığım kadarıyla herşeyi elle yapmak gerekiyo, öyle mi?

:D biliyorum biliyorum burası yeri değil mod yükleme olayıyla türkçe karakter sorununun ne alakası var. ama sadece bi soruyim dedim...
Kullanıcı avatarı
ESQARE
Web Sitesi Yöneticisi
Web Sitesi Yöneticisi
Mesajlar: 6971
Kayıt: 18.09.2005, 20:51
İletişim:

Mesaj gönderen ESQARE »

alptekin_n yazdı:Ne kadar teşekkür etsem azdır herhalde...

ben de mysql 4.1 kullanıyorum ve ne yaptıysam bir türlü türkçe karakterlere çözüm bulamıyordum.

her türlü database ayarını denedim, dil kodlamalarıyla uğraştım. sırf bu yüzden forum değiştirdim :)

yukarıdaki kodu db.php ye ekleyince sorun çözüldü :D

çooooookk teşekkürler Danila.... bir de kolay yoldan mod yükleme işini halletsek tam süper olucak. daha önceden SMF kullanıyodum ben. türkçe karakter sorunu yüzünden değiştirdim. ama SMF nin mod yükleme işi çok kolaydı. herşey admin panelinden halloluyo, gerçi henüz pek uğraşmadım ama phpbb de anladığım kadarıyla herşeyi elle yapmak gerekiyo, öyle mi?

:D biliyorum biliyorum burası yeri değil mod yükleme olayıyla türkçe karakter sorununun ne alakası var. ama sadece bi soruyim dedim...
Sitenizde ki tarafımızdan yapılan Türkçe çeviri imzalarımızı geri ekler misiniz?
Resim
phpBB Eklenti Kurulumu | Kurallar | phpBB3 İzinleri | Otel Rehberi

Kurallarımız gereği lütfen özel mesaj ile yardım istemeyiniz, cevap vermiyoruz.
alptekin_n
Kayıtlı Kullanıcı
Mesajlar: 2
Kayıt: 08.03.2007, 02:29
İletişim:

Mesaj gönderen alptekin_n »

:D kusura bakmayın dil dosyalarıyla o kadar uğraştım ki... Bir de PHP ye biraz yabancıyım herhalde kodlamayı anlamak için silmişimdir en kısa zamanda ekliyorum...
alexx
Kayıtlı Kullanıcı
Mesajlar: 15
Kayıt: 31.03.2007, 21:43
Konum: Ankara
İletişim:

Mesaj gönderen alexx »

beyler şu makaledeki kodları nereye ekleyeceğiz?
Danila
Kayıtlı Kullanıcı
Mesajlar: 16
Kayıt: 28.01.2007, 16:40
İletişim:

Mesaj gönderen Danila »

alexx yazdı:beyler şu makaledeki kodları nereye ekleyeceğiz?
alexx, kodların hangi dosyalarda kullanılacağı açıkça yazılmış. Nerede kullanacağını bilemediğin kodlar hangileri? Yazıyı bir kez daha oku lütfen.
ercutombalak
Kayıtlı Kullanıcı
Mesajlar: 2
Kayıt: 24.04.2007, 13:54
İletişim:

Mesaj gönderen ercutombalak »

merhaba bende bu phpbbde yeniyim elimdeki sql dosyasını import ettim.. include/db.php dosyasına // Make the database connection.
$db = new sql_db($dbhost, $dbuser, $dbpasswd, $dbname, false);
mysql_query("SET NAMES 'latin5'");
mysql_query("SET CHARACTER SET latin5");
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");
if(!$db->db_connect_id)
{

kodunu eklemeden once sağ tıklayıp dili turkçe yapıca sorun çıkmıyodu duzeliyodu tabi bunun çözüm olmadığını biliyorum o yuzden bu kodu ekledim ancak bu sefer dil paketindeki karakterler duzgun çıkıyor ancak forumda yazılan mesajlar da karakter problemi olusuyo bu sorunuma çözüm bulan olursa valla dua edicem onerilerinizi bekliyorum tesekkurler...
Danila
Kayıtlı Kullanıcı
Mesajlar: 16
Kayıt: 28.01.2007, 16:40
İletişim:

Mesaj gönderen Danila »

ercutombalak yazdı:merhaba bende bu phpbbde yeniyim elimdeki sql dosyasını import ettim.. include/db.php dosyasına // Make the database connection.
$db = new sql_db($dbhost, $dbuser, $dbpasswd, $dbname, false);
mysql_query("SET NAMES 'latin5'");
mysql_query("SET CHARACTER SET latin5");
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");
if(!$db->db_connect_id)
{

kodunu eklemeden once sağ tıklayıp dili turkçe yapıca sorun çıkmıyodu duzeliyodu tabi bunun çözüm olmadığını biliyorum o yuzden bu kodu ekledim ancak bu sefer dil paketindeki karakterler duzgun çıkıyor ancak forumda yazılan mesajlar da karakter problemi olusuyo bu sorunuma çözüm bulan olursa valla dua edicem onerilerinizi bekliyorum tesekkurler...
Yazıyı bir kez daha dikkatli bir şekilde okumanı rica ederim. Bu kadar çalışıp da sorunun ayrıntılı açıklamasını hazırlamaya çalıştım; açıklama okunmadan zaten cevaplanan soruların sorulması insanın moralini bozuyor tabi.

1. Bir numaralı maddede belirttiğim dosyaların kodlamasını değiştirdin mi?
2. Veritabanın idare edildiği kontrol panelinden veritabanın dil kodlamasını kontrol ettin mi? (Etmediysen hosting firması ile görüş).
3. Bunların işe yaramaması halinde php.ini ve httpd.conf dosyalarındaki ISO-8859-1 ifadesini değiştirttin mi?

Foruma yazdığın yazılarda nokta, virgül, vs. gereksiz işaretleri kullanmanı da rica edeceğim :D
ercutombalak
Kayıtlı Kullanıcı
Mesajlar: 2
Kayıt: 24.04.2007, 13:54
İletişim:

Mesaj gönderen ercutombalak »

sevgili danila ,
1. maddedeki tum dosyaları kontrol ettim ancak sorun devam etti..
2.cpanel/phpmyadminden yedek alıp baktıgımda db eydeginde karakterseti olarak latin1 olarak gorunuyo bende şöyle bişey deneyeim dedi.. sql dosyası içindeki tüm latin1 ifadelerini latin5 yaptım ve import ettim ancak karakterler bu sefer tam anlamı ile karmakarış oldu...
3.hostinge soracağım bakalım cevap ne olacak..
Amamerak ettiğim bu sorunun kesin çözümü vardır di mi? :):)
teşekkürler..

//////////
bu arada bişey eklicem db'yi utf8 ile import edince karaktersorunu ilk basta belirttiğim gibi sağ tıklayıp turkceyi secince düzelmis gorunuyo ama bu seferde dil dosyasının karakterleri bozuk oluyo...
Danila
Kayıtlı Kullanıcı
Mesajlar: 16
Kayıt: 28.01.2007, 16:40
İletişim:

Mesaj gönderen Danila »

ercutombalak yazdı:sevgili danila ,
1. maddedeki tum dosyaları kontrol ettim ancak sorun devam etti..
2.cpanel/phpmyadminden yedek alıp baktıgımda db eydeginde karakterseti olarak latin1 olarak gorunuyo bende şöyle bişey deneyeim dedi.. sql dosyası içindeki tüm latin1 ifadelerini latin5 yaptım ve import ettim ancak karakterler bu sefer tam anlamı ile karmakarış oldu...
3.hostinge soracağım bakalım cevap ne olacak..
Amamerak ettiğim bu sorunun kesin çözümü vardır di mi? :):)
teşekkürler..

//////////
bu arada bişey eklicem db'yi utf8 ile import edince karaktersorunu ilk basta belirttiğim gibi sağ tıklayıp turkceyi secince düzelmis gorunuyo ama bu seferde dil dosyasının karakterleri bozuk oluyo...
Sevgili ercutombalak

"latin1" karakter seti "iso-8859-1" karakter setine tekabül ediyor. Türkçe'ye özgü bazı harfler "8859-1" tarafından desteklenirken ("ç" gibi) bazı harfler de (“İ” gibi) desteklenmiyor.

"iso-8859-1" olarak ayarlanan veritabanına/tablolara farklı dil setinde (latin5 setinde) yedeklenmiş dosyayı ithal etmeye çalıştığın zaman karakterlerin sorunlu gözükmesi bana doğal geliyor.

Mevcut veritabanında kullandığın kodlamanın ve ithal ettiğin yedek dosyada kullandığın kodlamanın aynı (latin5) olması gerekiyor.

Ne işe yaradıkları konusunda net bir fikre sahip olmamamla birlikte php.ini ve httpd.conf dosyalarındaki kodlamayı da unutma.
LaBoRaNT
Kayıtlı Kullanıcı
Mesajlar: 56
Kayıt: 08.04.2006, 21:59
İletişim:

Mesaj gönderen LaBoRaNT »

bende de benzeri sorun var ama forumda sorun yok data base yedeği alırken soruun yaşıyorum phpmyadminde yedek alırken karakterleerin hepsi sorunlu oluyor. Data base latin1_general_ci e dönmüş muhtemelen serverda sorun olmuştu domain şirketi taşırken değiştirdi. ama kabullenmiyorlar. utfs8 e dönüştürme imkanım varmı yardımlarınızı bekliyorum şimdiden teşekkürler
Kullanıcı avatarı
akut
Kayıtlı Kullanıcı
Mesajlar: 74
Kayıt: 27.03.2007, 23:13
İletişim:

Mesaj gönderen akut »

Bendede Sorun Way. Mysql Veritabanı Değişti.

Şimdi Türkçe Olmuyor.

mysql yedegını atarken dılı latın5

Seçiyorum olmuyor =S

verilen bi 2 komut war.. latın5 yapmak ıcın..

o komutları calıstırdıgımda da hata veriyor
Kilitli

“2.0.x Türkçeleştirme” sayfasına dön

Kimler çevrimiçi

Bu forumu görüntüleyen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 3 misafir