Le codage HTML des questions - “” caractère montrant au lieu de “ ”

J'ai une application héritée juste de commencer à faire des siennes, pour quelque raison que ce soit, je ne suis pas sûr. Il génère un tas de code HTML qui est transformé en PDF rapports par ActivePDF.

Le processus fonctionne comme ceci:

  1. Tirer un modèle HTML à partir d'une base avec des jetons dans il être remplacé (par exemple, "~CompanyName~", "~CustomerName~", etc.)
  2. Remplacer les jetons avec les données réelles
  3. De l'ordre sur le code HTML avec une simple fonction regex que la propriété formats HTML balise de valeurs d'attribut (assure guillemets, etc, depuis ActivePDF le moteur de rendu de hait rien mais des guillemets simples autour de valeurs d'attribut)
  4. Envoyer le code HTML pour un service web qui crée le fichier PDF.

Quelque part dans ce désordre, les espaces insécables à partir du modèle HTML (le  s) sont l'encodage ISO-8859-1, de sorte qu'elles s'affichent de manière incorrecte comme un "Â" caractère lors de l'affichage du document dans un navigateur (FireFox). ActivePDF dégueule sur ces caractères non-UTF8.

Ma question: comme je ne sais pas d'où le problème vient du fait et n'ont pas le temps pour l'explorer, est-il un moyen facile de ré-encoder ou trouver et remplacer les mauvais caractères? J'ai essayé de l'envoyer par le biais de cette petite fonction que j'ai jeté, mais il se transforme en gobbledegook ne change rien.

Private Shared Function ConvertToUTF8(ByVal html As String) As String
    Dim isoEncoding As Encoding = Encoding.GetEncoding("iso-8859-1")
    Dim source As Byte() = isoEncoding.GetBytes(html)
    Return Encoding.UTF8.GetString(Encoding.Convert(isoEncoding, Encoding.UTF8, source))
End Function

Des idées?

EDIT:

Je suis arriver avec cela pour l'instant, bien qu'il ne semble guère être une bonne solution:

Private Shared Function ReplaceNonASCIIChars(ByVal html As String) As String
    Return Regex.Replace(html, "[^\u0000-\u007F]", " ")
End Function
  • Le HTML contient aucune méta de détails pour décrire son jeu de caractères?
  • [Précédente, a commenté supprimé] réponse Courte: non.
  • Pour moi travaillé: utf8_decode()
InformationsquelleAutor Cᴏʀʏ | 2009-09-22