Bu bağlamda "charset" konusuna bir soru ilave edebilir miyim ?

MySQL'den UTF-8 veriyi doğrudan SQL ile sorguladığınızda Türkçe karakterlerde büyük küçük harf ayrımına takılıyor (doğal olarak) ve mesela içerisinde küçük "ş" harfi bulunan bir sorgu büyük "Ş" içeren sonuçları döndürmüyor.

Bunun -programatik çözümler dışında- veritabanı seviyesinde bir çözümünü biliyor musunuz ?

Teşekkürler,
Mahir

17-05-2011 15:57, mehmet yazmış:
Merhaba,

Listelerden takip ettiğim kadarı ile bir süredir karakter seti ile
ilgili sorun yaşıyorsunuz.

Aslında defalarca yaşadığınız sorunu çözen yanıtlar aldınız ancak
sanıyorum bir noktada bir şeyler yanlış gidiyor.

Bu sorunu bir zincir gibi düşünün. Zincirin bir halkası kırıldığında
kalan halkalarda utf8'i 'force' etmek işe yaramıyor.

Adım adım gidecek olursak,

(önceki mesajınızdan mysql kullandığınızı hatırlıyorum)

1. mysql veritabanı, tablolar ve alanlar utf8 olarak yaratılmış mı?
2. tabloların içerisindeki veri utf8 olarak mı kaydedilmiş?
3. mysql bağlantısı açtığınsa oturum utf8 olarak set edilmiş mi? (set
names utf8)
4. mysql'den aldığın veriyi istemciye gönderirken, json ise header'da
content-type içerisinde utf8 belirttiniz mi, html sunuyorsanız meta
tag'de utf8 belirttiniz mi?

Bu soruların hepsinin cevabı evet ise sorunsuz bir şekilde Türkçe
metinleri görüntüleyebiliyor olmanız lazım.

Form'dan veri girişi yapılan html sayfalarında meta tag'leri arasında
utf8 olarak bildirimde bulunmamış iseniz formdan gelen verinin kendisi
utf8 kodlanmış olmayabilir(çoğu varsayılan utf8 artık ama...) bu
veriyi utf8 olarak tanımlanmış mysql oturumunuzda, utf8 olan tablolara
kaydetseniz de, kaydettiğiniz veri utf8 kodlanmamış olduğundan
sorunlar devam edecek.

Eskiden girmiş olduğunuz herhangi bir karakter setindeki veriyi iconv
ile utf8'e çevirip, tüm ortamlarda utf8 için gerekli tanımları yapıp
tekrar denemenizin sorununuzu çözeceğini sanıyorum.

html ve php dosyalarının kodlanması, veritabanından gelen dinamik
içeriğin kodlamasına etki etmez. Ancak meta-tag'de utf8 belirttiğimiz
için dosya içerisindeki karakterlerinde utf8 olarak kodlanmış olması
gerekiyor.

Kolay gelsin...


17 Mayıs 2011 15:41 tarihinde Emin Tepe <[email protected]> yazdı:
serdar bey,
dosyalar da utf-8, gelişmiş text editor de tüm dosyaları açıp utf-8 olarak
kaydettim yani o konuda sıkıntı yok.
ama bunları yapmama rağmen neden hala json verileri bozuk gelir.

17 Mayıs 2011 15:29 tarihinde Serdar KÖYLÜ <[email protected]> yazdı:
Büyük ihtimalle siz header için "charset: utf-8" gibi bir şey yaptınız
sadece. Ama HTML içeriği UTF-8 değilde, orjinal karakter seti neydiyse
o halde kaldı.

iconv --from-code=ISO-8859-1 --to-code=UTF-8 ./eski.html > ./yeni.html

gibi bir şeyle, dosyalardaki eski karakterleri yenisiyle değiştirmeniz
gerekiyor sanıyorum.



2011/5/17 Emin Tepe <[email protected]>:
arkadaşlar,
html dosyalarının charseti utf-8 yaptım ve bir veriyi güncelledim.
tekrar
json ile veriyi çektiğimde gene karakterlerde problem var. sorun
çıkıyor.
mesela

Rüzgar ÖZDEMYR
Ruhullah ÇELYK
Müslim ATSIZ
Muhammed BOZO?LAN

şeklinde geliyor. aslı

Rüzgar ÖZDEMİR
Ruhullah ÇELİK
Müslim ATSIZ
Muhammed BOZOĞLAN

olması lazım.

neden oluyor acaba :(



17 Mayıs 2011 14:30 tarihinde Bülent Aydin <[email protected]> yazdı:
utf-8 +

2011/5/17 Nuri AKMAN <[email protected]>
Ömer Bey,

Veri tabanı karakter seti de UTF8 olmalı değil mi?

Bir sorum daha olacak size: .html ve .php doslayarının encoding'i ne
olmalı? UTF8 without BOM mu?

Selamlar,
Nuri Akman


2011/5/17 Omer Barlas <[email protected]>
On 17-05-2011 11:33, Emin Tepe wrote:
arkadaşlar,
sizlerden birşey öğrenmek istiyorum. web sitelerinde default olarak
charset olarak utf-8 mi kullanmak lazım yoksa farklı charsetler
kullanılır mı?
farklı charset kullanılırsa avantaşları nedir dezavantajları nedir.

databaseden json ile cektiğim verilerden bir sürü sıkıntı yaşadım,
karakterler bozuk çıkıyor, iconv ile düzelmiyor vs.  charset olarak
iso-8859-9 kullanmıştım, insert ederkende bu charsetli sayfadan
insert
yaptığım için aynı charset ile inser etmiştir.
utf-8 kesin çözüm, sonuçta w3c ve email standartlarına göre her
istemci
UTF-8 okuyabilecek şekilde üretilmeli, ve şu anda da hemen hemen tüm
işletim sistemleri -evet, windows dahil- UTF-8 tabanlı çalışıyor.

Normalde ISO kodlu sistemlerde her karakter 1 byte tutarken, UTF-8'de
her karakter 1 veya 2 byte yer kaplıyor, bu da doğal olarak yer
ihtiyacını arttırıyor. Eğer yoğun bir şekilde metin tutuyorsan (bkz.
devasa forumlar) ve DB'nin alanı hosting vs sıkıntısından dolayı çok
dert oluyorsa ancak o zaman ISO koduna gitmeyi tavsiye ederim.

çok detaylı bir karşılaştırma için;
http://en.wikipedia.org/wiki/UTF-8

--
Omer Barlas
[email protected]
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php



--

Bülent Aydın
BSc.Math.Engineering, MBA


OpenPoint,
with creative ideas

IT Consultancy &  Development Services
Aschaffenburg/ Germany

Tel: +49 6021 1304664
Mobile :  0163 7870836
e-mail: [email protected]
Web Site: http://www.openpoint.de

_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php


_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php


_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php


_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap