Forum de discussion
Forum « Programmation ASP » (archives)
Re: editer DB: problèmes de caractères
Envoyé: 30 juin 2004, 12h18 par Oznog
Bon, c'est très bien, beaucoup plus clair sauf que nouveau sujet n'est pas nécessaire, c'est toujours la même discussion et peut porter à confusion. JE vais donc détruire l,autre discussion pour aider les internautes à suivre cette discussion très intéressante. Je copie aussi ma première réponse moins clais en dessous :
Très intéressant car c'est bien la première fois que je vois un problème avec les caractères "^", "'" ou "`".
J'ai bien peur que ta base ne soit pas compatible avec les caractères latin! Maintenant, avec une base SQL Server par exemple tu peux utiliser des champs texte Unicode. Tu peux ainsi entrer n'importe qu'elle caractère, voir chinois.
Fait des tests, par exemple "élève" si ça ne passe pas c'est ta base qui n'est tout simplement pas compatible et tu devra la changer, ou remplacer chaque caractère étendue (soit tout ce qui est plus de 128) Voir la table ASCII des caractères étendus.
Enfin, note que l'idéale est de ne pas utiliser "UPDATE" pour éviter ces problème. Utilise plutôt l'assignation directe :
rs("nom") = nom2
Mais ça implique de faire ta requète "SELECT" avant l'assignation. DE CETTE FAÇON TU PEUX AUSSI GÉRER EN MÊME TEMPS L'AJOUT DANS LA BASE. Si l'entrée n'existe pas déjà tu fais un addnew.
Ciao
Oznog
>Re: porblème de caractères sans plus d'explication?
>Salut,
>Hum, tu devrait être plus précis, notamment dans le sujet qui ne veux rien dire.
>Tout dépend de quel problème, de requète HTTP ou d'URL? Problème de requète SQL? De caractères refusé dans un champ de la base?
>Normalement on ne rencontre pas de problème à ce niveau dans la saisie, c'est un simple formulaire HTML et un élément de type textarea en fin de compte. Tu aurais un problème avec le double guillemet dans un type texte si value est entre double guillemet. Sinon, ça devrait fonctionner.
>Si tu fais une requête SQL et que dans cette requète tu utilise le double guillement comme séparateur (where monChamp = '"+variable... Tu dois doubler le double guillemet (where monChamp = '"+replace(variable,""","""")...
>Si c'est un url, encode-le urlEncoded
>Mais vu tes caractères rebelle, ce n,est pas par hazard une erreur XSLT? J'ai rencontré ce problème avec certain moteur MSXML pour traiter les XML/XSLT. Solution, par grand chose à part remplacer ces caractères, toujours avec un "replace".
>Ciao
>Oznog
Réponses
|