Geçersiz UTF-8 karakter kullanıcı girişi işlemek için nasıl?

0 Cevap php

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

0 Cevap