IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 15 Ocak 2015, 06:45   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
charset & encoding problemleri




karakter set veya türkçe problemi ile sanırım herkes karşılaştı
forumda onlarca defa çözülmesine(?) rağmen bu konu hakkında hala yeni sorular geliyor
ya çözümünü anlatamıyoruz, ya da yeterli değil

karakterlerin hem düzgün görülmesi için hemde veritabanında doğru depolama yapmak için biraz
detaylı anlatmaya çalışacağım

1) öncelikle yazdığınız dosyalarının, kullandığınız editörün encoding değerine göre iç karakter
kodlama (internal encoding) değeri vardır
çoğu editör bu değeri işletim sisteminden locale çevre değişkeninine bakarak seçer. windows
sistemlerde genellikle windows-1254 veya iso-8859-9 'dur.
bu dosyanın ( html , css , php , js .. ) içindeki text'in hangi encoding ile yazıldığını gösterir
2) http sunucusundan gönderilen çıktılar için default encoding değeri vardır, bu değer header
olarak gönderilir. sayfayı görüntüleyen kişinin kullandığı tarayıcı ( ie , ff .. ) body kısmını
parse ederken bu charset değerine göre işlem yapar. eğer bu header bilgisi bulunamassa bazı
tarayıcılar body içerisinde encoding bilgisi taşıyan meta etiketini arar.
bu değeri .htaccess ile :
ÇIKTI: AddCharset utf-8 .js .php .css .html
veya php'de header fonksiyonunu kullanarak
PHP: header('Content-Type: text/plain; charset=utf-8');
değiştirebilirsiniz
bu kısım çok önemlidir, zira haricindeki şeyleri doğru yapmanız bile karakterlerin hatalı
gözükmesine neden olabilir
ayrıca kullanıcı post / get gibi isteklerde sunucuya gönderdiği verileri bu encoding değerinde
gönderir

3) mysql 4.1 ve üst versiyon sunucuda karakter set ile ilgili değişkenler;
- server character set & collation
eğer sunucu yönetimi ile işiniz yoksa bu kısmı atlayabilirsiniz
mysql'i kurmadan önce configure parametresi olarak
KABUK: bash#./configure --with-charset=utf8 --with-collation=utf8_unicode_ci
veya mysql'i başlatırken
KABUK: bash#mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci

- database character set & collation
SQL: create database db character set utf8 collate utf8_unicode_ci;
eğer belirtmesseniz server değişkenleri kullanılacaktır

- table character set & collation
SQL: create table test(
c1 int(5) unsigned
) character set utf8 collate utf8_unicode_ci;eğer belirtmesseniz database değişkenleri kullanılacaktır

- column character set & sollation
SQL: create table test(
c1 text character set utf8 collate utf8_unicode_ci
);
eğer belirtmesseniz table değişkenleri kullanılacaktır

- connection character set & collation
character_set_client , character_set_results , character_set_connection, collation_connection
PHP: $mysqli->set_charset('utf8');
// veya
$mysqli->query('set names "utf8" collate "utf8_unicode_ci"');


PHP:
$m = new mysqli('localhost','user','pass','db');

//$m->set_charset('utf8');

$m->query("SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'");

$query = $m->query('show variables like "char%"');

if ($query) {
while ($row = $query->fetch_row()) {
echo $row[0].' => '.$row[1]."\n";
}
}

?>
ÇIKTI: character_set_client => utf8
character_set_connection => utf8
character_set_database => utf8
character_set_filesystem => binary
character_set_results => utf8
character_set_server => latin1
character_set_system => utf8
--
collation_connection => utf8_unicode_ci
collation_database => utf8_unicode_ci
collation_server => latin1_swedish_ci

__________________
Bu kez pek bir afili yalnızlık, ağlatan bir kadın kadar düşman. Ağzı bozuk üstelik bırakmıyor acıtmadan.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Cevapla

Etiketler
charset, encoding, problemleri


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Yaş Problemleri konu anlatımı, Yaş Problemleri Violent Matematik 0 09 Mart 2014 22:29
Base64 TCL ( encoding - şifreleme ) CeSaRCripS TCL Scriptler 9 26 Aralık 2012 02:07
Yepyeni bir encoding platformu! Deep İnternet Dünyasından Haberler 0 03 Mayıs 2012 18:13
C Problemleri. toXic C ve C++ 0 06 Şubat 2010 11:34