2011-04-05 3 views
0

J'ai un document texte qui est une liste de titulaires de licence. Je suis en boucle à travers ce document pour créer une table html de ces données. J'ai rencontré des noms avec des caractères non standard.Convertir des caractères en équivalent html en utilisant .net

C'est l'un d'entre eux

Aimeé

J'ai essayé de courir toutes les entrées par la fonction suivante, mais quand il tombe sur le caractère ci-dessus ne remplace pas.

Function ReplaceBadCharacters(ByVal input As String) As String 
    Return input.Replace(Chr(233), "é") 
End Function 

Comment puis-je remplacer chaque caractère par l'équivalent html?

EDIT

Lorsque je déboguer la fonction au-dessus montre l'entrée comme Aimé [] et non Aimeé.

Dans Chrome, il ressemble à ceci Aime

+0

Ensuite, l'encodage est erroné. – SLaks

+0

Lorsque j'ouvre le document dans notepad ++, il affiche le codage comme ANSI. Quand je le change en UTF-8 dans notepad ++, il montre que le caractère comme 'xE9' – guanome

+0

qui sonne comme é pourrait être un glyphe différent. De quel type de documents texte disposez-vous? .docx, .doc, .pdf, etc. peuvent insérer des glyphes non standard pour les caractères non standard. S'il s'agit d'un fichier .txt ou d'un document ASCII, vérifiez l'encodage. Vous pouvez lire le fichier en tant que UTF8 et le document est UTF ## ou vice-versa. Assurez-vous également de spécifier le type d'encodage lorsque vous lisez le fichier. –

Répondre

1

Vous n'êtes pas obligé de le faire.
Tant que votre page est encodée en UTF8, les caractères fonctionneront correctement.

Cependant, vous avez besoin d'appeler Server.HtmlEncode pour échapper les caractères spéciaux HTML.
(À moins que vous imprimez les chaînes dans un bloc <%: %> ou un bloc rasoir @, qui leur échappe pour vous)

+0

J'ai ajouté une balise meta avec charset = UTF-8 à la tête et il ne s'affiche toujours pas. J'ai aussi essayé server.htmlencode et pas de chance. Est-il possible que le fichier d'entrée ne soit pas au bon format? – guanome

+0

Essayez la propriété 'Encoding' dans la déclaration' Page'. – SLaks

+0

Est-ce que 'Encoding' doit être sur le vb ou le aspx? – guanome

0

é est dans l'ensemble courant de char ASCII. Si vous mettez cela dans le code HTML, il va rendre correctement (tout comme la façon dont il affiche correctement dans le navigateur lorsque vous regardez cette page)

mais si vous voulez remplacer toutes les occurrences, utilisez ce lieu &eacute;

input.Replace("é", "&eacute;") 
+0

J'ai ajouté une modification à l'article d'origine. Il ne voit jamais le caractère réel é. – guanome

Questions connexes