1

Y at-il un problème avec ASPX pour rendre les caractères accentués français? J'utilise utf-8 pour encoder.caractères accentués français

je jamais eu de problème comme ça avant (mais puisque c'est la première fois que je travaille sur un serveur ASP est-il fixe?)

par exemple Événements = à ‰ và © nements Journées fériées = Journées préférées

Est-ce un problème d'encodage? ou y a-t-il un code spécifique que j'ai besoin de placer pour le rendre correctement.

ici est un example

La page se lit comme suit:

Pour recevoir les communications de l’école par courriel, veuillez nous indiquer votre adresse courriel

Il faut lire:

Pour recevoir les communications de l'école par courriel, veuillez nous indiquer votre adresse courriel
+0

Avez-vous un exemple de code? –

+0

question a été mise à jour J'ai ajouté un lien vers le site –

+0

il n'y a pas de code HTML pur que je vais transformer en foiles mais c'est les caractères français qui ne sont pas lus ... exemple de lien sur la boite Q –

Répondre

3

Quel est le problème exactement? Avez-vous mis @ Codepage = 65001 dans les directives de la page en haut de votre fichier? Avez-vous marqué le type de contenu avec l'encodage correct afin que le client sache ce qu'il obtient?

Si vous voyez des points d'interrogation, il est probable que vous n'ayez pas correctement défini la page de codes de réponse. Si vous voyez deux caractères non liés à la place d'un seul caractère avec un signe diacritique, vous n'avez pas dit au client ce qu'il doit savoir pour traiter la page comme UTF-8, par exemple.

Response.CodePage = 65001 ; 
Response.CharSet = "utf-8" ; 

Il y a de légères différences entre la manipulation et asp.net asp de l'encodage, il serait également utile si vous étiez plus précis sur lesquels la technologie que vous utilisez, mais vous devriez la plupart du chemin .

Dans ASP.Net, vous pouvez définir l'encodage à l'échelle du site dans votre fichier web.config, ce qui vous évite de jouer avec Response.CodePage et Request.CodePage sur chaque page. Vous voulez toujours marquer le jeu de réponses en utilisant l'élément de type de contenu meta http-equiv dans votre code HTML ou en utilisant Response.Charset.

<globalization 
      requestEncoding="utf-8" 
      responseEncoding="utf-8" /> 

Si vous ne souhaitez pas utiliser web.config pour cela pour une raison quelconque, vous utiliseriez <% @ CodePage = 65001%> dans votre fichier .aspx avant la sortie de texte, dans la page directives.

Il semble que la page en question contient un codage UTF-8 incorrect. Le contenu provient-il directement du fichier .aspx ou provient-il d'une base de données ou autre?

+0

Salut désolé, je voudrais savoir comment mettre en œuvre ce que je suis nouveau à tout ce ASP et chaque fois que je tente de le poster dans mon code source, il me donne une erreur d'exécution. Je ne sais pas si je le mets correctement ou pas dans la bonne position. Faites le moi savoir. Merci –

+0

le contenu vient directement du fichier, comment le ferais-je? –

+0

Je pense que votre fichier source est corrompu, alors. Je vois 0a3c703e4a6f75726ec383c2a9657320 dans un éditeur hexadécimal, qui se traduit par Journées. Vous n'avez probablement pas enregistré correctement le texte original sur utf-8. Asp.Net ne fait aucune conversion de texte littéral. Fondamentalement, il semble que vous ayez double-codé le fichier source, de sorte que vous avez pris le texte UTF-8, l'avez traité comme Windows-1252, et avez converti le texte en UTF-8. – JasonTrue

-1

Au lieu d'utiliser les caractères réels, existe-t-il une raison pour laquelle il ne pourrait pas être codé en HTML?

donc au lieu de

Événements

utilisation

&Eacute;v&eacute;nements 

puis il devient la responsabilité du navigateur de l'utilisateur pour rendre les caractères correctement.

il y a une liste complète à http://www.w3schools.com/tags/ref_entities.asp

+0

bien pour simplifier ma vie au lieu d'encoder tout ce qu'il pourrait juste rendre au caractère correct ... –

+1

Il n'y a pas de bonne raison d'utiliser des entités nommées quand vous avez choisi d'utiliser utf-8, sauf pour les caractères spécifiquement réservés à HTML – JasonTrue

+0

L'utilisation d'entités rendrait la source illisible pour un humain. En outre, cela augmenterait considérablement la taille du fichier. – PauliL

0

Ma première thougt est que vous n'envoyez pas les en-têtes corrects pour utf-8. Mais l'utilisation du lecteur d'en-tête au web-sniffer montre que les en-têtes sont corrects. Le problème semble être que vous avez converti le texte en utf-8 deux fois.

Quand je regarde la source HTML de votre page avec Firefox "source de la page" en utilisant le codage ISO-8859-1, votre texte exemple montre que:

To receive the les communications de la ¢ â, ¬ â « ¢ à© cole par courriel, nous indiquer Votre please adresse courriel

C'est, les 2 caractères non-ASCII dans le mot l'école ont été convertis en 5 octets, et les 5 octets ont alors été converti à nouveau en 12 octets.

0

Essayez d'utiliser: Server.HTMLEncode (strToShow)

-1

Renommez les fichiers .asp au lieu de .aspx

Cela résoudra la question.

Questions connexes