hotti: Welche charset-Angabe im Header ist richtig?

Beitrag lesen

ni,

im Response-Body steht ein Name=Value Paar:
  animal=Gr%C3%BCner%20B%C3%A4r
was aufgrund des Percent-Encoding nur ASCII-Zeichen enthält. Ein Header
  Content-Type: text/plain; charset=US-ASCII
würde dazu passen. Nachdem die Prozentkodierung wieder rückgängig gemacht wurde, stellt sich jedoch heraus, dass die resultierenden Zeichen UTF-8 sind.

Wann passiert die Rückgängigmachung? Wenn du ein neues Dokument erzeugst, dann muss die Angabe zum Inhalt passen. Wenn der verarbeitende Prozess das Dokument hingegen korrekt lesen konnte und anschließend irgendwas mit den Daten anstellt, ist das sein Problem und nicht mehr das der Quelle. Die Quelle muss und kann nicht wissen, was mit den Daten passiert. Sie muss nur für sich selbst sprechen.

Ja, das denke ich auch, HTTP ist Layer 4, das ist nicht die Darstellungsschicht, korrekt wäre daher charset=US-ASCII.

Andererseits ist bei solchen proprietären Schnittstellen der Content-Type eher uninteressant, weil die Verarbeitung des Message-Body ebenfalls proprietär ist. Dieses Thema ist mir beim Entwickeln eines UserAgent für PayPal untergekommen, die bieten als Alternative zu SOAP einen Webservice an, der mit genau solchen Name=Value Wertepaaren funktioniert, die URL-encodet sind (percent encoding) und damit nur ASCII-Zeichen enthalten.

Der Webservice von PayPal sendet dazu einen
  Content-Type: text/plain; charset=UTF-8

Nur malso nebenbei ;)

Hotti