Arama butonu
Bu konudaki kullanıcılar: 1 misafir
30
Cevap
29820
Tıklama
0
Öne Çıkarma
PHP türkçe karakter problemi
R
18 yıl (424 mesaj)
Yüzbaşı
Konu Sahibi

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?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Ü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.

Üye Ol Şimdi Değil



E
18 yıl (147 mesaj)
Teğmen

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..


Bu mesaja 1 cevap geldi.
R
18 yıl (424 mesaj)
Yüzbaşı
Konu Sahibi

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?


Bu mesaja 1 cevap geldi.
A
18 yıl (4116 mesaj)
Yarbay

php dosyasına gömdüğünüz karakterler mi yoksa mesela bir formdan gelen post karakterleri mi bozuk çıkıyor?


Bu mesaja 1 cevap geldi.
R
18 yıl (424 mesaj)
Yüzbaşı
Konu Sahibi

quote:

Orjinalden alıntı: 90alper90

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.


Bu mesaja 1 cevap geldi.
R
18 yıl (424 mesaj)
Yüzbaşı
Konu Sahibi

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ı?

 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

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


ikisini de ayrı ayrı denedim fakat olmadı. Yok mu bi çaresi?


Bu mesaja 2 cevap geldi.
M
18 yıl (1934 mesaj)
Yüzbaşı

ben öyle durumlarda türkçe karakterlerin kodlarını kullanıyorum mesela ş erine kodunu yazıyorum



& #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.
R
18 yıl (424 mesaj)
Yüzbaşı
Konu Sahibi

quote:

Orjinalden alıntı: meta5

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...


Bu mesaja 1 cevap geldi.
U
18 yıl (4994 mesaj)
Binbaşı

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?


Bu mesaja 1 cevap geldi.
I
18 yıl (778 mesaj)
Yüzbaşı

Site adresini verebilirsen sayfa kodlarına bakabilirim.


Bu mesaja 1 cevap geldi.
R
18 yıl (424 mesaj)
Yüzbaşı
Konu Sahibi

sağolun arkadaşlar sorunu hallettim. şimdi herşey düzgün...


Bu mesaja 1 cevap geldi.
U
18 yıl (4994 mesaj)
Binbaşı

Keşke nasıl hallettiğini de söyleseydin...


Bu mesaja 2 cevap geldi.
N
18 yıl (7922 mesaj)
Yarbay

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.





< Bu mesaj bu kişi tarafından değiştirildi nihattr -- 28 Ekim 2007; 20:06:32 >
Bu mesaja 1 cevap geldi.
M
18 yıl (1934 mesaj)
Yüzbaşı

quote:

Orjinalden alıntı: nihattr

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


Bu mesaja 1 cevap geldi.
D
18 yıl (20565 mesaj)
Yarbay

Veriyi gönderirken url_encede(); aldıktan sonrada url_decode(); yapın



R
18 yıl (424 mesaj)
Yüzbaşı
Konu Sahibi

quote:

Orjinalden alıntı: un.real

Keşke nasıl hallettiğini de söyleseydin...


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ç.



Bu mesaja 1 cevap geldi.
G
18 yıl (2283 mesaj)
Yarbay

tam istediğiniz için geliştirilmiş hazır bir fonksiyon var zaten.
htmlentities()
sonra tekrar eski haline çevirmek için
html_entity_decode()



A
14 yıl (62 mesaj)
Çavuş

quote:

Orijinalden alıntı: rsi

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ı?

 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

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


ikisini de ayrı ayrı denedim fakat olmadı. Yok mu bi çaresi?
ağalar ben yapamıyorum yardım edecek yokmu kafayı yicem html yazptımı sorun yok php yaptımı sorun çıkıyor :S





< Bu mesaj bu kişi tarafından değiştirildi ae5140 -- 17 Eylül 2011; 18:55:51 >
Bu mesaja 1 cevap geldi.
S
14 yıl (471 mesaj)
Teğmen

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.


Bu mesaja 1 cevap geldi.
Z
14 yıl (344 mesaj)
Yüzbaşı

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


Bu mesaja 1 cevap geldi.