Ben bir formu (Windows-1251 yılında aslında) non-UTF-8 servis var. İnsanlar, tabii ki, orada yazılan herhangi bir karakter onlar gibi. Tarayıcı yardımsever ben hala onları tanıyabilir varlıkları html içine çıkamaz-in-Windows-1251 karakter dönüştürür. Örneğin, kullanıcı türlerine bir → eğer, ben bir →
alırsınız. Ben sadece geri echo eğer kısmen harika, gibi, tarayıcı doğru ne olursa olsun → gösterecektir.
Sorun aslında görüntülemeden önce metin üzerinde htmlspecialchars () yapmak, (bu HTML varlıklar, örneğin & olur özel karakterleri dönüştürmek için bir PHP fonksiyonu var &
). Benim kullanıcılar bazen —
veya ©
gibi şeyler yazın, ve ben gerçek —
veya ©
, değil onları görüntülemek istediğiniz - ve © .
I →
olarak hem olsun çünkü beni →
bir → ayırt etmek için hiçbir yolu var,. Ve, ben htmlspecialchars'dan beri () metin, and Ben de tarayıcıdan bir → bir →
olsun, ben {olarak görüntülenen alır bir →
geri hangi echo [(0)]} bir tarayıcıda. Yani kullanıcının giriş bozulmuş olur.
"Tamam, Windows 1251 yılında bu formu hizmet, ama you sadece UTF-8 bana girdi göndermek ve bana onunla kendimi anlaşma izin lütfen olacaktır:" demek için bir yolu var mı?
Oh, ben iyi bir fikir UTF-8 için tüm yazılım geçiş olduğunu biliyorum, ama bu sadece çok iş olduğunu ve bunun için hızlı bir düzeltme almak için mutlu olurdu. Bu konularda, formun enctype "multipart / form-data" dir (dosya aktarıcı içerir, bu nedenle başka bir EncType kullanamazsınız). Apache ve PHP kullanmak.
Teşekkürler!