Gibt es eine HTTP -Reaktion, die ich hinzufügen kann, um ein Codierungsproblem im Client -Webbrowser zu beheben?
-
01-10-2019 - |
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?
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