Problem mit encodeURI und den Buchstaben "ba" (Unicode-Problem?)

  • JavaScript

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcel1997.

    Kann ich erst Montag mit Sicherheit sagen, aber ich würde sagen nein, weil unser Intranet eigentlich nichts mit UTF-8 am Hut hat (ist noch ein uraltes WBB Lite 1). Was das Telefobnbuch angeht, keine Ahnung.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum

    Marcus Gräfe schrieb:

    Mache ich in den JS-Aufruf des tatsächlichen Telefonbuchlinks auch noch ein encodeURI('$pSearchTelefon') rein, so funktioniert es mit "bauer", aber bei der Suche nach "Gräfe" erscheint dann %grÀfe% im Suchfeld.

    War das vorher auch schon so, oder ist das Problem mit den Umlauten jetzt neu entstanden?
    Da scheinen zwei verschiedene Encodings am Werk zu sein. Am besten mal per Developer-Tools (IE: F12, FF: STRG-Shift+K, Chrome/Opera: STRG+Shift+I) nachschauen, welche Encodings/Charsets beim Content-Type-Header (oder den meta-Tags im HTML) angegeben sind.
    Das Problem mit den Umlauten besteht nur, wenn ich auch noch das zweite encodeURI einbaue. Vorher war das nicht, also vorher klappten Umlaute, aber eben das bauer nicht.

    Die aufrufende Seite hat als Charset iso-8859-15, das Telefonbuch utf-8.

    Die Dateien auf Aufruferseite (und nur da habe ich Zugriff drauf) haben laut Notepad++ einmal ANSI und ansonsten UTF-8 ohne BOM als Kodierung (ich gehe aber davon aus, dass es a) gar keinen Unterschied machen würde (die Umlaute stehen schließlich nicht im Dokument) und b) Notepad++ das gar nicht erkennen kann, solange keine expliziten Unicodezeichen drin stehen).

    EDIT: Ich glaube, ich habe das Problem gelöst! Ich habe zusätzlich zum 2. encodeURI noch in das PHP-Skript, welches das JavaScript erzeugt, ein utf8_decode eingebaut. Also der Weg ist nun wie folgt, um es mal übersichtlich darzustellen:

    - Eingabe im "iso-8859-15"-Formular
    - Übergabe per JS an Zwischenseite (PHP)
    - PHP-Zwischenseite generiert JS, das ruft weiteres JS auf
    - Dieses JS hängt %25 vorne und hinten an Suchstring und ruft weitere PHP-Seite auf, String wird per encodeURI übergeben
    - Diese PHP-Seite generiert JS, welches den Suchstring mit utf8_decode bekommt, dieses JS ruft wieder mit encodeURI das UTF-8-Telefonbuch auf

    Ich weiß, das klingt unnötig kompliziert, aber es ist nötig. ;)

    Ich danke euch für eure Hilfe! Ich hoffe, ich finde keinen weiteren Fehler.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Also zu der sache mit encodings usw. Ich hatte mal eine Software auf Windows mit XAMPP entwickelt/getestet. (Und keine gedanken über die Kodierung gemacht). Als ich dann die Software auf einen Windows Server mit IIS gespielt habe, passierte mit den eingegeben Daten sowas wie bei dir. Also denke ich ist das schon wichtig, da je nach webserver dieser die Daten dann anders verwaltet (vmtl.)