2009-01-13 4 views
1

J'ai un fichier HTML avec un symbole ® (copyright) et ™ (marque de commerce) dans le texte. Ce ne sont que deux parmi de nombreux autres symboles. Lorsque je lis le fichier html dans un contrôle littéral, il convertit les symboles en quelque chose d'autre.Problème de codage possible Lecture du fichier HTM avec .Net Streamreader

Le symbole du droit d'auteur se transforme en (boîte ouverte en ff) Le symbole de la marque convertit ™ (comme prévu)

If (System.IO.File.Exists(FullName)) Then 
    Dim StreamReader1 As New System.IO.StreamReader(FullName) 
    Contents.Text = StreamReader1.ReadToEnd() 
    StreamReader1.Close() 
End If 

Contenu est un <asp:Literal runat="server" ID="Contents"></asp:Literal> et il est le seul contrôle dans la page ASPX. D'après certaines recherches, je pense que cela est lié à l'encodage, mais je ne sais pas pourquoi cela changerait la façon de le réparer.

Le fichier html ne contient aucun paramètre Content-Type dans la section head.

+0

Voulez-vous dire que le code HTML contient l'entité ® ou le caractère ®? – Stobor

+0

Quand je regarde la source du HTML c'est le caractère réel pour le symbole enregistré mais l'entité ™ pour la marque déposée. –

Répondre

0

S'il est possible de déplacer ce traitement vers la méthode Render, vous pouvez utiliser HttpResponse.WriteFile pour voir s'il gère ces caractères mieux que le contrôle Literal. Si vous ne faites rien avec le contenu de ce fichier autre que l'assigner au contrôle et ensuite le laisser rendre, alors vous devriez être capable de le faire.

Questions connexes