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!