2010-05-12 10 views
0

J'ai une situation.Une chaîne Unicode tourne garbage à côté du serveur

J'ai une étiquette dans ASP.NET 2.0 (C#). L'étiquette devrait afficher un texte en langue néerlandaise qui est "Sähköpostioso", j'ai essayé de mettre le Label.Text à la fois du balisage et du code-behind mais ce que je vois dans la réponse du navigateur est "Sähköpostioso".

La chaîne "Sähköpostiosoite" affectée à l'origine est remplacée par "Sähköpostiosoite". Je ne sais pas pourquoi cela arrive pouvez-vous s'il vous plaît aidez-moi à diagnostiquer le problème ??

Répondre

0

Nous avons trouvé le problème

la page asp.net est générée par notre inhouse générateur de code Nous ne fournissons pas le format d'encodage tout en économisant.. Nous avons rectifié le problème en demandant au code-gen d'utiliser le codage UTF8 lors de l'enregistrement du fichier et il a résolu le problème

0

Vous devez définir l'en-tête HTTP:

Content-Type: text/html; charset=UTF-8 

et/ou ajouter des balises HTML:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

Plus d'info here.

+0

Cela se produit côté serveur. –

+0

Et vous êtes absolument certain que changer l'encodage du navigateur ne résout pas cela? D'un coup d'œil, il semble que les octets générés soient corrects en UTF-8 et que votre navigateur ait des problèmes pour les afficher. –

0

Avez-vous vérifié l'encodage du code HTML? Dans IE, vous pouvez rapidement basculer entre les encodages en cliquant avec le bouton droit de la souris et en changeant l'encodage actif dans le sous-menu Encoding (il y a probablement un moyen de le faire en FF mais je ne le connais pas). Si vous modifiez le codage (par exemple UTF-8), vous devez spécifier le codage via un en-tête HTTP (qui peut définir site-wde en utilisant l'élément <globalization /> dans web.config ou via l'élément HTTP <meta /> dans la page HTML.)

Voir ce pour plus d'informations sur l'élément <globalization />:. http://msdn.microsoft.com/en-us/library/hy4kkhe0.aspx