HTTP 1.0 Protocol und charset (utf-8)

Alles, was den Apache betrifft, kann hier besprochen werden.

HTTP 1.0 Protocol und charset (utf-8)

Postby Morfio » 25. May 2005 09:18

Hallo,

ich schreibe gerade einen Suchmaschinenbot, der auch relativ gut funktioniert. Implementiert habe ich ihn unter C++ auf FreeBSD. Nun hat er aber leider ein Problem mit Umlauten, wenn das Charset der Website auf UTF-8 steht.

Jetzt dachte ich mir, dass ich (laut RFC) einfach ein Charset vorgebe und im Header mitschicke und mir der jeweilige Webserver dann die Character umwandelt, so dass ich sie einfach lesen kann (sonst habe ich leider keine Idee, wie ich vernünftig an die Umlaute und Sonderzeichen komme).

Leider funktioniert mein Plan nicht, die Character werden nicht umgewandelt. So sieht mein Header aus:

GET / HTTP/1.0
User-Agent: MeinBot/0.0.1
Host: www.einewebsite.de
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
charset: ISO-8859-1


Gibt es da eine einfache Möglichkeit, UTF-8 umzuwandeln?

Vielen Dank,

Morfio ...
Morfio
 
Posts: 2
Joined: 25. May 2005 09:04

Postby Wiedmann » 25. May 2005 10:49

charset: ISO-8859-1

Du meintest hier:
Code: Select all
Accept-Charset: ISO-8859-1


Jetzt dachte ich mir, dass ich (laut RFC) einfach ein Charset vorgebe und im Header mitschicke und mir der jeweilige Webserver dann die Character umwandelt,

Da bist du aber auf dem Holzweg . Der Server wandelt hier keine Zeichensätze um. Er wird nur versuchen die angeforderte Ressource mit diesem Charset zu schicken, sofern sie in mehreren Versionen vorliegt. Ist die Ressource ein PHP-Script, könnte auch dieses diesen Header auswerten und entsprechend reagieren (falls vom Programmierer vorgesehen).

Wenn du wie bei diesem Code nur ISO-8859-1 wünscht, die Seite aber nur in UTF-8 verfügbar ist, solltest du als Ergebnis vom Server den Fehlercode 406 erhalten.

Gibt es da eine einfache Möglichkeit, UTF-8 umzuwandeln?

Das liegt jedenfalls in deiner Verantwortung. Auch C++ dürfte da doch Bibliotheken/Funktionen dafür haben?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Morfio » 25. May 2005 11:25

Wiedmann wrote:
charset: ISO-8859-1

Du meintest hier:
Code: Select all
Accept-Charset: ISO-8859-1



Soweit ich verstanden habe, ist beim 1.0er Protokoll charset und beim 1.1er Accept-Charset.

Auf jedenfall vielen Dank für die Antwort, ich dachte, ich könnte die Arbeit den Webserver überlassen. Werde ich wohl selber konvertieren.

Danke schön,

Morfio ...
Morfio
 
Posts: 2
Joined: 25. May 2005 09:04

Postby Wiedmann » 25. May 2005 11:58

Soweit ich verstanden habe, ist beim 1.0er Protokoll charset und beim 1.1er Accept-Charset.

Auch HTTP/1.0 kennt nur das Header-Feld "Accept-Charset" und kein "Charset".

BTW:
RFC1945 wrote:new HTTP applications SHOULD NOT be based on this specification but instead on the HTTP/1.1 specification.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to Apache

Who is online

Users browsing this forum: No registered users and 19 guests