Gibt es eine HTTP -Reaktion, die ich hinzufügen kann, um ein Codierungsproblem im Client -Webbrowser zu beheben?

StackOverflow https://stackoverflow.com/questions/3154199

Frage

Ich habe einen eingebetteten Webserver in C unter Verwendung von UIP -Bibliotheken in einem Mikrocontroller, der den folgenden statischen Text als Antwort auf ein HTTP -GET ausgibt. Es wird unten als buchstäbliche Zeichenfolge gezeigt:

"HTTP/1.0 200 OK\r\n"
"Server: UIP/1.0 (http://www.something.com/)\r\n"
"Content-type: text\html\r\n"

Gleich danach kommt die docType String und die ... u003C/html> Körpern der angeforderten Seite. Ich habe diesen Code nicht geschrieben, aber er wurde mir übergeben. Jetzt versuche ich es bei Opera, Firefox und Internet Explorer. Die gesamte Webseite verwendet ANSI/C und keine speziellen Zeichenfolgen oder Bytes. Es wird jedoch nur in der Oper geladen und angezeigt. Aus irgendeinem Grund wird dieser spezielle UIP-basierte Webbrowser nicht auf IE 8 oder Firefox rendern.

! [Alt Text] [1

Was kann ich zu den HTTP-Headern hinzufügen, damit meine Micro-Web-Server-Codierung von Basic/Standard C/ANSI-Codepage für alle Browser und nicht nur für Opera ordnungsgemäß erkannt werden soll?

War es hilfreich?

Lösung

Versuchen Sie, Ihren statischen Text auf diesen zu ersetzen:

"HTTP/1.0 200 OK\r\n"
"Server: UIP/1.0 (http://www.something.com/)\r\n"
"Content-type: text/html; charset=utf-8\r\n"

HINWEIS : Das Backslash ('') -Chfigur ist ein Esacpe -Zeichen in Ihrer statischen Zeichenfolge, Sie haben " h" mit Ihrem "Text html" " h" gemacht, " h".

HINWEIS : Der Teil "charset = utf-8" ist nur nützlich, wenn Ihre Dateien UTF-8-Encode sind

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top