dedlfix: Just another »Schei? encoding«-Frage ;) - Social Bookmarks

Beitrag lesen

Hi!

Ich habe diesen Code eingebunden:
        <script src="http://www.social-bookmark-script.de/js/button-long.js" type="text/javascript"></script>

Der verwendet encodeURIComponent(). Während das Mozilla Developer Center sagt, dass es UTF-8 nimmt, schweigt sich die MSDN zur verwendeten Kodierung aus. Die ECMA jedenfalls definiert, dass das Ergebnis UTF-8-kodiert (und anschließend URL-kodiert) sein soll.

Die Seite gehört zum Dienstleister?
Ja.

Dann liegt es in seiner Verantwortung, die Daten korrekt weiterzureichen und dabei gegebenenfalls umzukodieren, je nachdem, wie das Ziel es haben will (und dieses "wie" natürlich vorher herauszufinden).

Garbage gibt es in vielen Versionen. Wenn du zeigst, wie es genau aussieht, kann man zumindest konkret raten, was passiert sein könnte.
Aus »–« wird »â€“« und aus »ü« wird »Ã¼r«.

Also UTF-8, wenn man es als ISO-8859-1 interpretiert.

Anscheinend werden an irgendeiner Stelle die Zeichen nicht richtig kodiert an die URL angehängt, denn das steht in der Adresszeile der Dienstanbieterseite nachdem auf den Button geklickt wurde (Firefox):
http://www.social-bookmark-script.de/submit.bookmarks.htm?url=http%3A%2F%2Fwww.example.com%2Findex.html&title=Kundenfirma%20GmbH%20%E2%80%93%20Ihr%20Partner%20f%C3%BCr%20dies%2C%20das%2C%20und%2C%20jenes

Soweit enttspricht das der Definition von encodeURIComponent().

Jetzt wähle ich Mister Wong, und das steht nun in der Adresszeile:
http://www.mister-wong.de/index.php?action=addurl&bm_url=http://www.example.com/index.html&bm_notice=&bm_description=Kundenfirma GmbH – Ihr Partner für dies, das und jenes&bm_tags=

Ich würde das dem Dienstleister ankreiden, wenn er eine eine ordnungsgemäße URL nicht richtig weitersenden kann. Du kannst da nichts weiter machen als Nicht-ASCII-Zeichen zu vermeiden (was natürlich keine akzeptable Lösung ist).

Lo!