MySQL Türkçe Karakter Problemi

Yazar: »


Makaleler forumunda bulunan MySQL Türkçe Karakter Problemi konusunu görüntülüyorsunuz...

Türkiye Forum yöneticileri tarafından yazılan makaleler

MySQL Türkçe Karakter Problemi

Mesajgönderen taNGo » 03-04-2010 02:48

Php+mysql tabanlı site tasarımları hazırlayan yeni arkadaşların en büyük problemleridir, mysql 4 üzerindeki karakter problemleri. Aslında göründüğü kadar zor birşeyde değildir düzeltmesi. Hem phpnuke hem wordpress kurarken olsun, karşılaştığım en büyük problemdi bu. Bu sadece mysql 4 üzerinde oluşan birşey. Yani mysql 4'ler üstünde karakter kodlama seçenekleri söz konusu.

Yeni bir veritabanı yarattığınızda, Karşılaştırma(Collation) değerinin latin1_general_ci, latin1_swedish_ci v.b. olduğunu göreceksiniz. Siz bu veritabanı üstüne tablolarınızı yaratır ve kullanıma hazır hale getirirsiniz. Fakat her tablo için varsayılan karşılaştırma değeri, yine veritabanında kullanılan değer olacaktır.
Aslında karşılaştırma değeri, tabloların dil kodlamasıdır. Ve sadece metin içerikli sütunlarda görünmektedir. Bunun anlamı, o sütunda seçmiş olduğunuz dilin kullanılacağı diyebilirim. Standart olarak swedish geçer. Sizlerin bu sütunlara yollayacağınız kayıtlar ise, isveçce dili göz önünde bulundurularak girilir. Bundan da şu çıkar: isveçcede Türkçe karakter yer almaz, bu yüzden Türkçe karakterler yerine ? v.b. karakter bulacaksınız. Sanırım genel olarak anlatabildim bu kısmı.

Çözüm Yolu
Yeni bir veritabanı yaratırken, karşılaştırma değerini daima latin5_turkish_ci seçin. Dilimize ait karakter kodu budur. Bu şekilde veritabanını yaratırsanız, tablolar için yapmanız gereken fazladan birşey yok. Tablo yaratırken, metin değerli sütunların karşılaştırma değerlerini boş bırakabilir yada yine latin5_turkish_ci seçebilirsiniz.

Sıra php kodlarınızı yazmaya geldiğinde, tabi ki tablonuzun karşılaştırma değerini sql dilinde belirtmelisiniz. Bunun için aşağıda vereceğim kodu kullanacaksınız. Bunu veritabanı bağlantısı kurup, ilgili veritabanını seçtiğiniz satırın bir alt satırana girebilirsiniz.

Kod: Tümünü seç
PLAIN TEXTmysql_query("SET NAMES 'latin5'");


Bu kodumuz tüm sorgularda, karşılaştırma değerinin latin5 olacağını söyler. Böylelikte gireceğiniz Türkçe karakterler sorunsuz şekilde tablolara yazılacaktır.

Mysql 4 üstünde Türkçe karakter hatasını bu şekilde çözebilirsiniz. Ayrıca benzeri uygulamayı, hazır içerik yönetim kodlamaları üstüne de uygulayabilirsiniz. Tek mantık burasıdır.

Kaynak: http://www.dmry.net/mysql-turkce-karakter-problemi
Dreams
Paylaş:
Kullanıcı avatarı
taNGo
WebMaster
WebMaster
 
Mesajlar: 3922
Kayıt: 23-06-2003 20:54
Konum: Geriden

Re: MySQL Türkçe Karakter Problemi

Mesajgönderen BillyHagen » 03-11-2017 16:54

In general, I understand this part! Hopefully, the default comparison value for each table will be the value used in the database.
BillyHagen
New Friend
New Friend
 
Mesajlar: 1
Kayıt: 03-11-2017 16:50


Dön Makaleler

  • Benzer başlıklar
    Cevaplar
    Görüntüleme
    Son mesaj

Kimler çevrimiçi

Bu forumu gezen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 1 misafir

Bilgilendirme

Sitemize kayıt olan bazı kullanıcılar forumlarımıza mesaj/başlık/konu/içerik gönderme veya yazma yetkisine sahip olurlar.Bu nedenle bu kayıtlı kullanıcılar sitemiz üzerine ya da forumlarımıza direkt olarak (önceden onaysız) mesaj gönderebilmektedirler. turkiyeforum.com yöneticileri ve yardımcıları bu kullanıcılar tarafından yayınlanabilecek her türlü uygunsuz, etik kurallara aykırı, site kurallarımıza aykırı, telif haklarının ihlalini içeren, yasa dışı v.b. içerikleri/mesajları/ögeleri tespit eder etmez derhal ilgili konuyu/mesajı/başlığı/yazıyı site üzerinden sileceklerdir/yayından kaldıracaklardır ve gerekirse kullanıcının IP adresini tespit edip ilgili kullanıcıyı siteden uzaklaştıracaklardır. Yine de her türlü duruma karşı tarafımızdan tespit edilemeyen, gözümüzden kaçan, takip edilemeyen bu tarz ilgili kurallara ya da yasalara aykırı unsurlar bulursanız İletişim formunu ya da admin @ turkiyeforum.com e-posta adresini kullanarak bize bildirebilirsiniz.

cron