2012/5/9 Mehmet Gürevin <mehmetgure...@gmail.com>

> Selam,
>
> Öncelikle:
> http://mail.linux.org.tr/pipermail/linux-programlama/2012-February/thread.html#13984
>
> UTF-8 ve ISO-8859-9 alt kümeleri birbiri ile uyumlu değiller. Dolayısı ile
> UTF-8 kodlamada çalışan bir sisteme ISO-8859-9 veri gönderirseniz karakter
> eşleşme sorunları ile karşılaşırsınız.
>
> MySQL'de collation kısmı ise sadece karşılaştırmalarda kullanılan mappingi
> belirtiyor. MySQL söz konusu olduğunda şu 3 kriteri sağlarsanız bir sıkıntı
> yaşamazsınız;
> 1. Verinin saklandığı field utf8 olmalı
> 2. Aktif connection için bağlantı karakter seti utf8 olmalı. (kısayol: set
> names utf8)
> 3. Kaydedilmek için gönderdiğiniz veri utf8 kodlanmış olmalı.
>
> Bahsettiginiz mailleri okudum. Ozellikle sunu
http://mail.linux.org.tr/pipermail/linux-programlama/2012-February/013997.html
Kullandigim tablo ve dosyalarda bir kodlama sorunu olmadigina ve mysql ve
phpnin de genel olarak dogru ayarlandigina
inanmis olmama ragmen bugun benzer bir sorun ile karsilastim. Sorun bir
onceki ile tam ayni degil.
Oncekinde mysql utf8 tabloya verileri load data infile ile yuklemistim.
Collation utf8_turkish_ci olunca durum duzelmisti (nedense?).

Bu sefer benzer bir tabloya sql insert cumleleri kullanarak yukledim.
Yukledigim dosyanin kodlamasi utf8 olmasina ragmen
sql cumlesini calistirdigimda tabloya eklenen veriler farkli kodlamadaydi.
Dosyayi Iso8859-9 yapinca duzelme oluyordu ama
İ,Ş gibi karakterler kotu cikiyordu. Bunu cozmek icin verileri load data
infile ile baska bir tabloya atip oradan hedef tabloya insert
ettim. Bu sekilde oldu. Direk hedef tabloya load data ile yukleyemedim,
cunku foreign key vardi,yukletmedi.
Dolayisiyla buradan anladigim
load data infile ile yukleyince dogru calisabilen bir seyin insert
komutlariyla calismamasi oldu.

Bu satirlari yazarken, bu sorunun sebebi olarak mysqle baglanti
farkliliklarinin olabilecegi aklima geldi.
Yani
mysql>load data infile ....
ile
# mysql hedeftablo -u user -p  < insert.sql
seklindeki 2 farkli baglantinin buna sebep olup olmayacagini dusunuyorum
simdi de.

Eger mysql promptundayken baglanti kodlamasi utf8 ve bash uzerinden
baglaninca latin1 ise boyle bir sorun yasamis olmam dogal olabilir mi?

mysql version  5.0.95
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap