UTF-8 bildiğiniz üzere çok geniş bir karakter setini destekliyor. Peki utf8_turkish_ci, utf8_general_ci, utf8_unicode_ci gibi collation’lar ne işe yarıyor?

Collation aslında tablodan select yaparken, tabloyu sıralarken ya da tablolar arasında join yaparken işimize yarayan bir şey. Hangi karakterlerin hangi karakterlerle aynı şeyi ifade ettiğine mysql bu bilgilere göre karar veriyor (collation tablosuna göre).

Örneğin utf8_turkish_ci olan bir tabloda, “cafe” kelimesi için select sorgusu yazdığınızda, sorgu size “café” içeren kayıtları da döndürmez; ama tablo utf8_general_ci ya da utf8_unicode_ci ise döndürür.

Bu collation’ların tablolarına şağıdaki linkten bakılabilir:

http://www.collation-charts.org/mysql60/mysql604.utf8_turkish_ci.html

http://www.collation-charts.org/mysql60/mysql604.utf8_general_ci.european.html
http://www.collation-charts.org/mysql60/mysql604.utf8_unicode_ci.european.html

utf8_unicode_ci çok dillilik içeren sistemlerde geniş bir dil yelpazesinde sonuçlar sunuyor bize. Yaptığımız tabloların default collation’larını ve text fieldların collationlarını utf8_unicode_ci olarak ayarlarsak, üzerinde çalıştığımız sistemin çokdilliliği desteklemesini kolaylaştırmış oluruz.


Önemli bir not:
Farklı collation’lar arası join işlemi mümkün değil, bu yüzden tüm database için aynı collation’ı kullanmak en temiz çözüm.
Kaynak: http://anil.ozselgin.com/2009/08/utf-8-bildiginiz-uzere-cok-genis-bir.html

CEVAP VER

This site uses Akismet to reduce spam. Learn how your comment data is processed.