OVH Cloud OVH Cloud

Un comportement bizzare avec la langue française

6 réponses
Avatar
fabrice
Re bonjour à tous

je suis sur un petit problème dont je ne comprends pas la cause.
je suis dans l'internationalisation de mon site : français et anglais.

Avec l'anglais pas de soucis, car pas d'accent :!

mais le français....

Je réalise un fichier .ressources que je vais lire ensuite avec
ResourceReader.
Afin de coder les accents j'utilise le code de la lettre. Voici un exemple
de mon codage.

Control=Déconnexion

Tant que j'attribue la valeur récupérée à un control Label/Litteral et bien
pas de soucis. J'obtiens bien... Nos coordonnées.
Mais si je fais exactement la même manipulation avec un Control Button alors
la !!!!!

j'obtiens le text suisvant dans mon control, c'est à dire la valeur texte :
Déconnexion

Je ne comprends pas la subtilité. Si je récupère la valeur pour la mettre
une variable String et que je fais un response.write j'obtiens aussi la
bonne écriture.


Merci de votre aide

fabrice

6 réponses

Avatar
fabrice
Un petit complement.

Je viens de regarder la source de ma page aspx généré.

Si je regarde le label j'ai ceci :

Déconnexion

ce qui correspond au é.

par contre sur le bouton et pour la même variable attribué à la propriété
TEXT j'obtiens ceci

Déconnexion


Il a converti le & du code caractère é par son propre code à savoir &

Je ne comprends pas la raison de cela.
si quelqu 'un a déja rencontré le probleme.




"fabrice" a écrit dans le message de news:

Re bonjour à tous

je suis sur un petit problème dont je ne comprends pas la cause.
je suis dans l'internationalisation de mon site : français et anglais.

Avec l'anglais pas de soucis, car pas d'accent :!

mais le français....

Je réalise un fichier .ressources que je vais lire ensuite avec
ResourceReader.
Afin de coder les accents j'utilise le code de la lettre. Voici un exemple
de mon codage.

Control=Déconnexion

Tant que j'attribue la valeur récupérée à un control Label/Litteral et
bien pas de soucis. J'obtiens bien... Nos coordonnées.
Mais si je fais exactement la même manipulation avec un Control Button
alors la !!!!!

j'obtiens le text suisvant dans mon control, c'est à dire la valeur texte
: Déconnexion

Je ne comprends pas la subtilité. Si je récupère la valeur pour la mettre
une variable String et que je fais un response.write j'obtiens aussi la
bonne écriture.


Merci de votre aide

fabrice



Avatar
Guillaume Davion
A mon avis, il a fait un Server.HTMLEncode dans le second cas... Par
contre, pourquoi il le fait dans un cas et pas dans l'autre, alors là
mystère...
Pour le contrer, tente peut-etre de faire un HTMLDecode de ton coté?
Avatar
Fabrice
Bonjour Guillaume

Tu avais raison !
Effectivment il fait un Server.HTMLEncode sur la variable.
Pourquoi sur un control Button et pas Label, je ne sais pas nn plus. Peut
être une raison de sécurité au niveau du contenu mis dans la propriété VALUE
de l'input form et éviter des choses désagréables comme du SQL injection. Ce
qui est rude c'est que cette pratique devrait être réalisée volontairement.
Mais je peux me tromper sur la raison de ce comportement.

En tout cas le Server.HTMLDecode de le contrer. C'est génial. Voilà un week
end de gangné !
J'étais parti sur les pistes de l'encode des caractères... je perdais pied.

Merci à toi.
Passe un bon week end.

fabrice
"Guillaume Davion" a écrit dans le message de news:

A mon avis, il a fait un Server.HTMLEncode dans le second cas... Par
contre, pourquoi il le fait dans un cas et pas dans l'autre, alors là
mystère...
Pour le contrer, tente peut-etre de faire un HTMLDecode de ton coté?
Avatar
Franck Quintana
Je vous conseille d'utiliser .NET Reflector
(http://www.aisto.com/roeder/dotnet/) de Lutz Roeder pour voir comment
ASP.NET réalise ses rendus.
Grace à cet outil vous gagnerez un temps précieux. En effet sur ce coup
là vous avez perdu du temps parce que vous ne connaissiez pas la
fonction qu'il a de fonctionner.


Franck Quintana
Active+ Software
http://www.activeplus.com

Fabrice wrote:
Bonjour Guillaume

Tu avais raison !
Effectivment il fait un Server.HTMLEncode sur la variable.
Pourquoi sur un control Button et pas Label, je ne sais pas nn plus. Peut
être une raison de sécurité au niveau du contenu mis dans la propriété VALUE
de l'input form et éviter des choses désagréables comme du SQL injection. Ce
qui est rude c'est que cette pratique devrait être réalisée volontairement.
Mais je peux me tromper sur la raison de ce comportement.

En tout cas le Server.HTMLDecode de le contrer. C'est génial. Voilà un week
end de gangné !
J'étais parti sur les pistes de l'encode des caractères... je perdais pied.

Merci à toi.
Passe un bon week end.

fabrice
"Guillaume Davion" a écrit dans le message de news:

A mon avis, il a fait un Server.HTMLEncode dans le second cas... Par
contre, pourquoi il le fait dans un cas et pas dans l'autre, alors là
mystère...
Pour le contrer, tente peut-etre de faire un HTMLDecode de ton coté?




Avatar
Fabrice
Bonjour Franck

J'avoue avoir utiliser reflector pour récupérer auparavant le cnten d'une
dll mais pas pour cela.
Mais j'avoue aussi ne pas être expert de cela. Quand tu parle de l'utiliser
pour comprendre les rendus de .NET, pourrais je te demander un exemple.
Notamment le rendus d'un control Button. OU puis je voir cela aec Reflector?
Sinon il me reste la possibilité de capturer le rendus HTML en code.

merci
fabrice
"Franck Quintana" a écrit dans le message de news:
43d24764$0$21261$
Je vous conseille d'utiliser .NET Reflector
(http://www.aisto.com/roeder/dotnet/) de Lutz Roeder pour voir comment
ASP.NET réalise ses rendus.
Grace à cet outil vous gagnerez un temps précieux. En effet sur ce coup là
vous avez perdu du temps parce que vous ne connaissiez pas la fonction
qu'il a de fonctionner.


Franck Quintana
Active+ Software
http://www.activeplus.com

Fabrice wrote:
Bonjour Guillaume

Tu avais raison !
Effectivment il fait un Server.HTMLEncode sur la variable.
Pourquoi sur un control Button et pas Label, je ne sais pas nn plus. Peut
être une raison de sécurité au niveau du contenu mis dans la propriété
VALUE de l'input form et éviter des choses désagréables comme du SQL
injection. Ce qui est rude c'est que cette pratique devrait être réalisée
volontairement.
Mais je peux me tromper sur la raison de ce comportement.

En tout cas le Server.HTMLDecode de le contrer. C'est génial. Voilà un
week end de gangné !
J'étais parti sur les pistes de l'encode des caractères... je perdais
pied.

Merci à toi.
Passe un bon week end.

fabrice
"Guillaume Davion" a écrit dans le message de news:

A mon avis, il a fait un Server.HTMLEncode dans le second cas... Par
contre, pourquoi il le fait dans un cas et pas dans l'autre, alors là
mystère...
Pour le contrer, tente peut-etre de faire un HTMLDecode de ton coté?





Avatar
Franck Quintana
Bonjour,
Voici l'url du screenshot dans lequel vous trouverez (je l'espère) une
partie de l'explication à votre problème.
(http://bilbo.serveftp.org/download/reflector.png)
Je vous renvoie vers ce lien qui explique de façon plus exhaustive le
mode de rendu d'ASP.NET
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/custwebcon.asp)

La meilleure façon de bien comprendre est à mon avis de créer un
webcontrol par vous même, de vous "amuser" à surcharger les méthodes
telles que "OnPreRender", "RenderBeginTag"... et de voir en sortie ce
que cela donne.
Ainsi vous maitriserez beaucoup mieux les comportements liés aux
contrôles built-in de Microsoft.

Franck Quintana
Active+ Software
http://www.activeplus.com