2010-02-22 5 views
0

Toutes nos tables sont actuellement définies avec un jeu de caractères LATIN1. Un utilisateur est actuellement capable de créer des séquences Unicode sur le client et d'essayer de les intégrer dans notre application. Quelle est la meilleure façon d'éliminer tous les caractères Unicode de notre base de données? Mieux encore, c'est le meilleur moyen de s'assurer que seuls les caractères basés sur un jeu de caractères LATIN1 sont insérés dans le db?PHP/MySQL, rejetant Unicode envoyé par un client

Répondre

3

Il y a plusieurs choses que vous pouvez faire.

D'abord, vous pouvez ajouter l'attribut accept-charset à vos balises de formulaire comme ceci:

<form accept-charset="ISO-8859-1"> 

Malheureusement IE ne supporte pas très bien (bien sûr), vous pouvez donc utiliser iconv pour convertir les données une fois vous l'avez sur votre serveur. La fonction iconv() peut convertir d'un jeu de caractères en un autre. Vous pouvez spécifier si vous souhaitez que les caractères incompatibles soient traduits, ignorés ou qu'un avis soit émis.

Questions connexes