• Bu site çerezler kullanır. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz. Daha fazla bilgi edin.

HTML ve MySQL'de Türkçe karakter problemi

Konuyu Okuyan Kişiler (0)

ctis

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
65
Beğeniler
0
#1
Merhaba arkadaşlar,

PHP&MySQL ile kodladığım HTML sitemde Türkçe karakter problemi yaşıyorum ve çözüm bulamıyorum. Sorunu şöyle anlatayım.

Kodlamayı UTF8 Bomsuz yapmam gerekirken ANSII olarak yaptım, ve UTF8 Bomsuza dönüştürünce karakter problemi yaşıyorum.

MySQL veritabanım :

MySQL bağlantı karşılaştırması -> utf8_turkish_ci

MySQL bağlantı ayarlarım ->

@mysql_query("SET NAMES UTF8");
@mysql_query("SET CHARACTER SET UTF8");
@mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");

HTML header bölümüm :

<meta http-equiv="Content-Type" content="text/HTML; charset=ISO-8859-9" />

Şuanda ANSII kodlama ile karakter problemi yok fakat PHP ile bir çok konuda UTF8 Bomsuz kodladığım için sorun yaşıyorum. Sitemi UTF8 Bomsuz olarak Türkçe karakter problemi yaşamamam için ne yapmam lazım, yardımcı olursanız çok sevinirim :(
 

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#3
PHP:
@mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");
bunu

PHP:
@mysql_query("SET COLLATION_CONNECTION = 'utf8_general_ci'");
Şeklinde değiştir.

Charset ise

HTML:
<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />
Tablolar ise



Şeklinde utf8_general_ci olsun. Sorunun kalmaz...
 

ctis

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
65
Beğeniler
0
#4
PHP:
@mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");
bunu

PHP:
@mysql_query("SET COLLATION_CONNECTION = 'utf8_general_ci'");
Şeklinde değiştir.

Charset ise

HTML:
<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />
Tablolar ise



Şeklinde utf8_general_ci olsun. Sorunun kalmaz...
Dostum sorun kısmen çözüldü.

HTML ile yazdığım kısımlar Türkçe karaktere döndü, fakat mysql den çektiğim veriler aşağıdaki formatta gözüküyor:

K�z�lay B�y�l�fener

(Bu veriler tablolarda Türkçe gözüküyor)
 

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#5
Dostum sorun kısmen çözüldü.

HTML ile yazdığım kısımlar Türkçe karaktere döndü, fakat mysql den çektiğim veriler aşağıdaki formatta gözüküyor:

K�z�lay B�y�l�fener

(Bu veriler tablolarda Türkçe gözüküyor)
Tablo tiplerini, UTF8 yaptınmı ? Eğer yaptıysan yeni bir içerik gir bakalım sorun çıkacakmı.
 

ctis

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
65
Beğeniler
0
#6
Tablo tiplerini, UTF8 yaptınmı ? Eğer yaptıysan yeni bir içerik gir bakalım sorun çıkacakmı.
Yeni satır ekledim fakat sql den çekilen verilerde karakter sorunu yaşıyorum :eek:

3 tablom var yapıları şu şekilde:

Tablo Eylem Satır Türü Karşılaştırma Boyut Ek Yük
filmler Gözat Yapı Ara Ekle Boşalt Kaldır 8,146 MyISAM utf8_general_ci 1.4 MiB -
il Gözat Yapı Ara Ekle Boşalt Kaldır 62 MyISAM utf8_general_ci 4.0 KiB -
ilce Gözat Yapı Ara Ekle Boşalt Kaldır 213 MyISAM utf8_general_ci 31.6 KiB 56 B
3 tablo Toplam 8,421 MyISAM utf8_general_ci 1.5 MiB 56 B

Ekrana (sqlden çekerek) bastığım örnek görüntü :

Salon: Ariplex Re�atbey

Adres: Ar� Pasaj�, Re�atbey Mah.Atat�rk Cad. Ar� Pasaj� Seyhan, Seyhan/Adana - 0322 457 8143
 

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#7
Yeni satır ekledim fakat sql den çekilen verilerde karakter sorunu yaşıyorum :eek:

3 tablom var yapıları şu şekilde:

Tablo Eylem Satır Türü Karşılaştırma Boyut Ek Yük
filmler Gözat Yapı Ara Ekle Boşalt Kaldır 8,146 MyISAM utf8_general_ci 1.4 MiB -
il Gözat Yapı Ara Ekle Boşalt Kaldır 62 MyISAM utf8_general_ci 4.0 KiB -
ilce Gözat Yapı Ara Ekle Boşalt Kaldır 213 MyISAM utf8_general_ci 31.6 KiB 56 B
3 tablo Toplam 8,421 MyISAM utf8_general_ci 1.5 MiB 56 B

Ekrana (sqlden çekerek) bastığım örnek görüntü :

Salon: Ariplex Re�atbey

Adres: Ar� Pasaj�, Re�atbey Mah.Atat�rk Cad. Ar� Pasaj� Seyhan, Seyhan/Adana - 0322 457 8143
Dosya tipini utf-8 bomsuz yaptın mı ?
 

ctis

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
65
Beğeniler
0
#12
Sorun Halledilmiştir, Sebebi ;

Bağlantı dosyasında latin kullanılmış, utf8 kullanılmalı.
Eline sağlık, tekrarlamak gerekirse:

PHP:
$server = "server ip"; 
$user = "kullanıcı adı"; 
$pass = "şifre"; 
$database = "veritabanı adı";  

mysql_connect($server,$user,$pass) or die ("Hata: veritabanına bağlanılamadı!");
mysql_select_db($database) or die ("Hata: veritabanına bağlanılamadı!.Db yok"); 
	@mysql_query("SET NAMES 'utf8'");
	@mysql_query("SET CHARACTER SET 'utf8'");
	@mysql_query("SET COLLATION_CONNECTION = 'utf8_general_ci'");
MySQL tanımlamasını bu şekilde yapmamız gerekiyor. İleride aynı sorunla karşılaşan olursa umarım yardımcı olur.

Adminimize çok teşekkür ediyorum.
 

ctis

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
65
Beğeniler
0
#13
@inforesim, son bir sorunum daha var. Malesef tüm uğraşlarıma rağmen çözüm bulamıyorum.

Başka bir .php dosyamda, mysql veritabanıma uzaktan çektiğim verileri kaydediyorum.

Uzaktan verileri mysql_html_dom.php adlı bir sınıf yardımıyla ve sql bağlantısı kurarak sağlıyorum. (mysql.php ve mysql_html_dom.php include ediliyor)

include ettiğim dosyaları gene utf-8 bomsuza çeviriyorum. ve asıl verileri eklediğim php dosyamıda utf8 bomsuza çevirdikten sonra işleme başlamak istiyorum.

Fakat gene aynı ? olan karakter problemi oluştu ne yaptıysam bir yol bulamadım...
 

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#14
@inforesim, son bir sorunum daha var. Malesef tüm uğraşlarıma rağmen çözüm bulamıyorum.

Başka bir .php dosyamda, mysql veritabanıma uzaktan çektiğim verileri kaydediyorum.

Uzaktan verileri mysql_html_dom.php adlı bir sınıf yardımıyla ve sql bağlantısı kurarak sağlıyorum. (mysql.php ve mysql_html_dom.php include ediliyor)

include ettiğim dosyaları gene utf-8 bomsuza çeviriyorum. ve asıl verileri eklediğim php dosyamıda utf8 bomsuza çevirdikten sonra işleme başlamak istiyorum.

Fakat gene aynı ? olan karakter problemi oluştu ne yaptıysam bir yol bulamadım...
Kullandığın sınıfla alakalı olabilir, Normal bir veritabanı bağlantı dosyasında "localhost" yerine, ip yazarsanız sorunsuz uzak MYSQL erişimi sağlarsınız.
 

ctis

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
65
Beğeniler
0
#15
Dostum, mysql veritabanına kayıt yaparken sorun çıkıyor niyeyse.

Türkçe karakter gelene kadar ilgili sütuna kayıt yapıyor, Türkçe karakter geldiği anda kalanı boş gözüküyor.

Örnek:

"Mükemmel" diye kayıt yapacaksa, sütunda sadece "M" harfi gözüküyor.

Kayıt eklediğim php dosyasıda UTF Bomsuz durumda.
 

ctis

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
65
Beğeniler
0
#16
Bir PHP classından çektiğim verileri MySQL veritabanına kayıt ederken sürekli Türkçe karakter hatası alıyordum. Yaklaşık 500 farklı denemeden sonra bir fonksiyon buldum ve bu fonksiyon sayesinde dışarıdaki sınıftan gelen verileri (UTF-8 Bomsuz kod yapısında) UTF-8 Türkçe karakterlerine çevirip veritabanına kaydedebildim.

$var = iconv("ISO-8859-9", "UTF-8", $var);

Olurda ileride bir gün birisi bu başlığı görürse bir dua edersiniz. :)
 

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#17
Bir PHP classından çektiğim verileri MySQL veritabanına kayıt ederken sürekli Türkçe karakter hatası alıyordum. Yaklaşık 500 farklı denemeden sonra bir fonksiyon buldum ve bu fonksiyon sayesinde dışarıdaki sınıftan gelen verileri (UTF-8 Bomsuz kod yapısında) UTF-8 Türkçe karakterlerine çevirip veritabanına kaydedebildim.

$var = iconv("ISO-8859-9", "UTF-8", $var);

Olurda ileride bir gün birisi bu başlığı görürse bir dua edersiniz. :)
O gün iconv bende denemiştim ama olmamıştı :) Sınıfla alakalı sanırım.
 

ctis

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
65
Beğeniler
0
#18
Dostum inan ki çözümü şuanda buldum.. Sorun o sınıftaydı çünkü aynı tabloya insert sorgusu ile Türkçe karakter ekleyebiliyordum.

Burada en büyük artı şu oldu: Senin ilk mesajlarda değiştirmemi istediğin ve senin de değiştirdiğin yerlere çok güvendiğim için o kısmı hiç bozmadım. Sadece o sınıfa yoğunlaştım en sonunda şuan sorunsuz veri ekleyebiliyorum. UTF-8 formatında da gösterebiliyorum :) Kısaca konusu açılmışken yardımların için tekrar teşekkür ediyorum.

Zaten kodlama ile ilgili sorunum olunca artık r10'a değil buraya açıyorum burası daha aktif :)
 

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#19
Dostum inan ki çözümü şuanda buldum.. Sorun o sınıftaydı çünkü aynı tabloya insert sorgusu ile Türkçe karakter ekleyebiliyordum.

Burada en büyük artı şu oldu: Senin ilk mesajlarda değiştirmemi istediğin ve senin de değiştirdiğin yerlere çok güvendiğim için o kısmı hiç bozmadım. Sadece o sınıfa yoğunlaştım en sonunda şuan sorunsuz veri ekleyebiliyorum. UTF-8 formatında da gösterebiliyorum :) Kısaca konusu açılmışken yardımların için tekrar teşekkür ediyorum.

Zaten kodlama ile ilgili sorunum olunca artık r10'a değil buraya açıyorum burası daha aktif :)
İlla MYSQL sınıfı kullanacağım diyorsan bence EZSQL kullan veya http://www.webmaster.tc/php/alpsql-kullanimi-2637.html kullanabilirsin.