2009-06-09 9 views
0

Siehe http://pilot.whatpub.org/Guide/002000/Pub002687.htm und sehen Sie sich die Quelle an.HTML-Codierung einer aus Word eingefügten Zeichenfolge

Der Text in der Beschreibung ("Refurbished in 2005 ...") wurde aus einem Word-Dokument in eine System.Web.UI.WebControls.TextBox eingefügt und dann in einer Datenbank als Unicode gespeichert.

Es hat offensichtlich einige Nicht-ASCII-Zeichen drin, die IE seltsam interpretiert.

Jetzt kann ich die Zeichenfolge durch System.Web.HttpUtility.HtmlEncode übergeben und es konvertiert das e-Akut-Zeichen in "Café" in eine HTML-Konstante. Das Gleiche passiert mit dem "£" -Zeichen (es gibt keinen in diesem Beispiel), also sehen sie gut aus.

Allerdings tut HtmlEncode nichts mit dem ungewöhnlichen Anführungszeichen vor "Wein", so dass es endet, immer noch als diese seltsame Sequenz angezeigt wird.

Gibt es eine andere Kodierungsfunktion, die helfen würde?

Prost, Rob.

Antwort

3

Die Seite korrekt in UTF-8, aber keine charset angegeben wird serviert wird. In

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

zum < head> </head>, und Sie werden in Ordnung.

BTW, die HTTP-Header fehlt auch eine charset Definition:

$ HEAD http://pilot.whatpub.org/Guide/002000/Pub002687.htm 
[...] 
Content-Type: text/html 
[...] 
$ 

ändern es zu

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

und Dinge erarbeiten.

+0

Die korrekte Einstellung des HTTP-Headers ist viel wichtiger als das Meta-Tag, aber beide sollten so eingestellt werden, dass alles browserübergreifend funktioniert. – mercator

+0

Wie ändern Sie den HTTP-Header? Dies ist eine statische Webseite, die auf einem Webserver liegt. Sicher, es wird aus Code generiert, aber danach ist es eine statische Webseite. Es ist IIS, der die Seite bereitstellt, wenn Sie die URL in den Browser eingeben. Es wird nicht direkt von einer Datenbank generiert, daher weiß ich nicht, wie ich den HTTP-Header einstellen soll. Ist es eine Einstellung auf IIS? Wenn dies der Fall ist, könnte dies problematisch sein, da es gehostet wird ... –

+0

@Rob \ Nicholson - Ja, IIS muss konfiguriert werden, um den korrekten HTTP-Header zu liefern. Dieser Link sollte erklären, wie es gemacht wird: http://www.w3.org/International/O-HTTP-charset – sunny256

1

Ich bin mir nicht sicher, in welchem ​​Teil der Anwendung Sie die Kontrolle haben.

Versuchen Sie, den Zeichensatz im Inhaltstyp so einzustellen, dass der Browser die Zeichen richtig rendert.

Inhaltstyp: text/html; charset = ISO-8859-1

(BTW, die Seite korrekt in Firefox rendert.)

+0

Ich habe Zugriff auf alles - der HTML-Code wird von www.whatpub.pub von VB.NET-Code generiert, so dass es einfach ist, die Art der Generierung zu ändern. –

+0

Das ist Browser-Kompatibilität für Sie :-) Render in Chrome nicht. –

Verwandte Themen