Giriş Yap Kayıt ol Online Üyeler Aktif Konular Arama Üyeler Forum Kuralları
Tahribat.Com | Siteler İçin Türkçe Karakter Sorununun Çözümü
Tahribat.Com Forumları
Programlamaya Giriş
      Siteler İçin Türkçe Karakter Sorununun Çözümü
Bu Bölümde yeni konu açmak için tıklayın Konuyu cevaplamak için tık...
Konu 26 Ocak 2012 (Persembe) 18:12 tarihinde açıldı. Kısayol | Alıntı yap | Özel Mesaj
zumsuk


Kayıt : 8 Agustos 2005
Erkek Üye
 

Tahribat'a niyeyse yazmamışım, bir çok konuda aradım bulamadım ve 4-5 konuya yazdım.Sürekli soruluyor bu yüzden çözümünü konuda vermek istiyorum.

!! Öncelikle bu php içindir.Asp için hatırladığım kadarıyla yazıcam.2 Dildeki website için yazdım.Başka dilde sorun olursa buraya yazın, çözümünü bilirlerse 2. mesajı editleyip oraya ekleyeceğim.

----

Bu sorun maalesef bir çok kişinin saçını başını yolduruyor.Fakat sakin olun.Çok basit çözümleri var.Genelde Türkçe için iso-8859-9 yani latin (Türkçe) karakter desteği yada windows-1254 yapmanızı söylerler.Böyle Türkçe karakterler görünüyormuş.Diğer türlü olmuyormuş...

Çözümü basit : utf-8.Her projemdeki dil budur ve şimdiye kadar hiç sıkıntı yaşamadım.Bir sürü karakterin desteğini verir.

Kısacası şunları yapmalısınız ;

1- Veritabanınızda (phpmyadmin vs.) utf8_general_ci kullanın .

2- Kodladığınız editörün (eğer linuxta kwrite gibi birşeyde aç-kaydet kısmında) utf-8 olduğundan emin olun.Yani dosya kodlaması utf 8 olsun(bom'suz).Windowstada bazı editörlerde bunu kontrol edin.Utf8 ile kodladığınızdan emin olun.

3- Phpde bütün sayfaların başında şu ifadenin olduğundan emin olun ;

<?php header('Content-Type: text/html; charset=utf-8'); ?>

ajax ile çekiyorsanız hepsinde olmasına gerek yok.Görünen sayfalarda en az 1 tane oılmalı.

4- Arama motorları, hmtl için meta set'lerini kullanmamız gerekir.

<meta http-equiv="Content-Language" content="tr">

html5'de daha basittir ;

<meta charset="utf-8">

5- Kodlarken kullandığımız yapu utf8, görüntülerken yine utf8 i kullandık.Fakat bir problem daha olabilir.Buda veritabanından veri çekerken utf8 olarak çekmek.Bunun için şöyle yapın;

$dbbaglan = mysql_connect ("localhost","kullanıcıadı","şifre") or die('mysql bağlantısında sorun var');

mysql_select_db ("veritabanı",$dbbaglan) or die('veritabanı seçerken problem oldu');

//buraya kadar veritabanına bağlandık ve seçtik.Burdan sonra ;

mysql_query("SET NAMES 'utf8'") or die('utf-8 de problem');

 

Gördüğünüz gibi mysql_query("SET NAMES 'utf8'") yaptığımız zaman kodlama yapımız, kodlamamız, mysql stilimiz, mysqldan veri çekmemiz ve gösterimimizin hepsi utf8 olacaktır.

Dikkat !!

Bi projede bütün gün boyunca çözmeye çalışmıştım.Dediklerimi yaptım ama hala problem vardı.Sonradan çözdüm.

Phpde veritabanı vs xss için html ile ilgili fonksiyonlar kullanıyoruz ( html_entites_encode  vs.) . Bunlardan birini kullanıp daha sonra büyültmeye çalışmıştım.Ekrana html haliyle bastırdığı için büyümemiş.Tekrardan çevirip, büyütüp, yeniden htmlentites() kullanıp ekrana bastırmak zorunda kaldım.

Bunun gibi problemler çıkabilir.Fakat yukardaki 5 adımı yaptığınızda bir problem çıkmaması gerek.

utf8 hakkında daha detaylı bilgi için: Wiki-Utf8


Şeytanın tek suçu düzene karşı çıkmaksa, en büyük idolümdür ! 
26 Ocak 2012 (Persembe) 18:12 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
zumsuk


Kayıt : 8 Agustos 2005
Erkek Üye
 

aspde yanlış hatırlamıyorsam ;

<%@ LANGUAGE=VBScript.Encode CODEPAGE=1254%>

(php yerine).

django'da default olarak gelir utf-8 sıkıntı yok.

 


Şeytanın tek suçu düzene karşı çıkmaksa, en büyük idolümdür ! 

[1]


Bu Bölümde yeni konu açmak için dıklayın Konuyu cevaplamak için tık...
Allah'a Havale Et Google Bookmark'a Ekle Yahoo'ya Ekle Stumbleupon'a Ekle Facebook'a Ekle Twitter'a Ekle   Google'da Ara : Siteler İçin Türkçe Karakter Sorununun Çözümü Favorilerime Ekle Yukarı Çık
Konuda 2 Mesaj Var.
Konu 118 Sefer Gösterilmiş.
2001-2012 © Tahribat Group - Her Hakkı Saklıdır. - ● Gizlilik İlkeleri ● Kullanım Koşulları ● İletişim