Arkadaşlar html dosyasından php dosyasına POST veri gönderip ekrana yazan bi web sitesi hazırladım, bilgisayarımda herşey normal fakat serverda çalıştırdığımda (Ripway) php sayfasındaki türkçe karakterler bozuk çıkıyor. Bunu nasıl düzeltebilirim?
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.
< 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ı?
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?
Aynen dediğin gibi notepad'de açtım, utf-8 olarak kodlayıp kaydettim. Sorun düzeldi...
quote:
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ç.
< 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ı?
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..
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
ş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.
Bu mesaja 1 cevap geldi. Cevapları Gizle
< 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?
Bu mesaja 2 cevap geldi. Cevapları Gizle
& #0305; = ı
& #0199; = Ç
& #0287; = ğ
& #0351; = ş
boşluuğu kapat
< Bu mesaj bu kişi tarafından değiştirildi meta5 -- 26 Ekim 2007; 12:49:50 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
iyi güzel ama yorumunu yazacak kullanıcıya ş harfi yerine "& #0351;" kullanınız diyemezsin ki...
Bu mesaja 1 cevap geldi. Cevapları Gizle
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?
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 2 cevap geldi. Cevapları Gizle
$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.
< Bu mesaj bu kişi tarafından değiştirildi nihattr -- 28 Ekim 2007; 20:06:32 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
güzel fonksyion artık bende kullancam saol
Bu mesaja 1 cevap geldi. Cevapları Gizle
Aynen dediğin gibi notepad'de açtım, utf-8 olarak kodlayıp kaydettim. Sorun düzeldi...
Bu mesaja 1 cevap geldi. Cevapları Gizle
htmlentities()
sonra tekrar eski haline çevirmek için
html_entity_decode()
< Bu mesaj bu kişi tarafından değiştirildi ae5140 -- 17 Eylül 2011; 18:55:51 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
utf-8 kodlaması kullan sorun olmuyor.
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle