|
Merhaba arkadaşım; Sayfanın başına aşağıdaki kodu eklesen de bi denesen..(head tagleri arasına..) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Şu halde sayfa unicode olarak çalışmalı ve Türkçe karakterlere destek vermelidir.. |
| Onu da denedim fakat fayda etmedi. html dosyalarında sorun yok ama php'ye gelince türkçe karakter sorunu çıkıyor ortaya. Acaba server dan mı kaynaklanıyor? |
| php dosyasına gömdüğünüz karakterler mi yoksa mesela bir formdan gelen post karakterleri mi bozuk çıkıyor? |
şimdi şöyle, bilgisayarımda hiçbir şekilde problem yok. ama siteyi internetten açtığımda bu hatayla karşılaşıyorum. iletisim.htm dosyasındaki formdan gelen veriler bir *.txt dosyasına kaydedilip iletisim.php sayfasında gösteriliyor. iletisim.htm ve iletisim.php sayfaları dizayn olarak aynı zaten ama php sayfasındaki hem yazılar hem navigasyon linkleri hem de gönderilen mesajdaki türkçe karakterler bozuk çıkıyor. sayfada ne kadar türkçe karakter varsa bozuk yani. |
|
Durum değişti.. < Resime gitmek için tıklayın > sayfaya girince dil kodlamasını türkçe yapınca düzeliyo herşey fakat, her girişimde tekrar Batı Avrupa(ISO)'ya dönüyor yeniden dil kodlaması seçmem gerekiyor. Sayfa yüklenir yüklenmez otomatik olarak türkçeye alacak bi kod var mı?
ikisini de ayrı ayrı denedim fakat olmadı. Yok mu bi çaresi? |
ben öyle durumlarda türkçe karakterlerin kodlarını kullanıyorum mesela ş erine kodunu yazıyorum & #0305; = ı & #0199; = Ç & #0287; = ğ & #0351; = ş boşluuğu kapat |
iyi güzel ama yorumunu yazacak kullanıcıya ş harfi yerine "& #0351;" kullanınız diyemezsin ki... |
|
Php sayfanı kaydederken hangi kodlamayı kullanıyorsun? Benim tahminim bazı metin düzenleyiciler kendi kodlama sistemlerini kullanarak .html sayfasını kaydettikleri için, sayfayı sunucuya atınca da o kodlama sistemi çalışıyor, senin yukarıya yazdığın <meta> etiketi çalışmıyor. Aynı sayfayı bir de notepad'de açıp UTF-8'li <meta> etiketini kullan. Farklı kaydet. Kaydederken; * Kayıt türünü "Tüm Dosyalar", * Kodlamayı "UTF-8" seç. Ve sunucuya gönder, bakalım tepki verecek mi? |
| sağolun arkadaşlar sorunu hallettim. şimdi herşey düzgün... |
|
ben böyle kullanıyorum. $mesaj = $_POST['mesaj']; $tr = array('Ç', 'ç', 'Ğ', 'ğ', 'ı', 'İ', 'Ö', 'ö', 'Ş', 'ş', 'Ü', 'ü'); $kod = array('& Ccedil;', '& ccedil;', '& #286;', '& #287;', '& #305;', '& #304;', '& Ouml;', '& ouml;', '& #350;', '& #351;', '& Uuml;', '& uuml;'); $veri = str_replace($tr, $kod, $mesaj); &'den sonraki boşlukları silmeniz gerek. böylece formdan gelen $mesaj değişkeni Türkçe karakterlerinin yerini kodlara bırakarak $veri değişkenine dönüşüyor. |
güzel fonksyion artık bende kullancam saol |
| Veriyi gönderirken url_encede(); aldıktan sonrada url_decode(); yapın |
Aynen dediğin gibi notepad'de açtım, utf-8 olarak kodlayıp kaydettim. Sorun düzeldi...
|
|
tam istediğiniz için geliştirilmiş hazır bir fonksiyon var zaten. htmlentities() sonra tekrar eski haline çevirmek için html_entity_decode() |
|
|
dil kodlamalarını aynı yap çok basit bir hata var bi yerde mutlaka. ayrıca ikisini de php uzantılı yapsan bir şey kaybetmezsin. utf-8 kodlaması kullan sorun olmuyor. |
| ek not:notepad ile açıp utf-8 ile kaydetmek veri tabanını düzeltmez..Aynı zamanda veri tabanını da utf-8 general-ci olarak ayarlamanız gerekmektedir |
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.