Je suis à la recherche d'général d'une stratégie ou des conseils sur comment gérer l'UTF-8 non valide les données des utilisateurs.
Même si ma webapp utilise UTF-8, en quelque sorte, certains utilisateurs d'entrer des caractères non valides. Cela provoque des erreurs dans PHP json_encode() et l'ensemble semble être une mauvaise idée d'avoir autour.
W3C I18N FAQ: Multilingue Formes dit "Si non-UTF-8 de la réception des données, un message d'erreur sera envoyé en retour.".
- Exactement comment cela devrait-il être pratiquement terminé, l'ensemble d'un site avec des dizaines de lieux différents où les données peuvent être entrées?
- Comment voulez-vous présenter l'erreur d'une manière utile pour l'utilisateur?
- Comment voulez-vous stocker temporairement et affichage de la mauvaise forme de données de sorte que l'utilisateur ne veut pas perdre tout leur texte? Bande de mauvais caractères? Utiliser un caractère de remplacement, et comment?
- Pour les données existantes dans la base de données, lors de l'UTF-8 non valide de données est détectée, il faut que j'essaie de le convertir et de les enregistrer en arrière (comment? utf8_encode()? mb_convert_encoding()?), ou laisser comme tel dans la base de données, mais de faire quelque chose (quoi?) avant json_encode()?
EDIT: je suis très familier avec l'extension mbstring et ne te demande pas "comment UTF-8 en PHP". J'aimerais des avis de personnes ayant de l'expérience dans des situations du monde réel comment ils ont traité ce.
EDIT2: en tant Que partie de la solution, j'aimerais vraiment voir un rapide méthode pour convertir des caractères non valides à U+FFFD