Ben kullanıcıların geçersiz UTF-8 girdi başa konusunda genel bir strateji / tavsiye arıyorum.
Benim webapp UTF-8 kullanıyor olsa bile, bir şekilde bazı kullanıcıların geçersiz karakterler girin. Bu PHP'nin json_encode() hatalara yol açar ve genel civarında olması kötü bir fikir gibi görünüyor.
W3C I18N FAQ: Multilingual Forms "non-UTF-8 veri alınırsa, bir hata mesajı geri gönderilmesi gerekmektedir." Diyor.
- Tam olarak nasıl bu pratik veri girişi olabilir farklı yerlerde düzinelerce bir site genelinde, yapılmalı?
- Nasıl kullanıcıya yararlı bir şekilde hata mevcut do?
- Kullanıcının tüm metin kaybetmek yok bu yüzden nasıl geçici kötü form verilerini saklamak ve görüntülerim? Kötü karakterler Strip? Bir değiştirme karakteri ve nasıl kullanılır?
- Veritabanında mevcut veriler için, geçersiz UTF-8 veri tespit edildiğinde, bunu dönüştürmek ve (nasıl? utf8_encode (?) mb_convert_encoding()?) Geri kazanmak için çalışın, ya da olmalı veritabanında olduğu gibi-ancak json_encode önce bir şey (ne?) yaptığını bırakın (?)
EDIT: I'm very familiar with the mbstring extension and am not asking "how does UTF-8 work in PHP". I'd like advice from people with experience in real-world situations how they've handled this.
U + FFFD strong> geçersiz karakterleri dönüştürmek için EDIT2: As part of the solution, I'd really like to see a fast yöntemi