• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Wir haben den Frühjahrsputz beendet, Ihr auch? Welches Foto zu dem Thema hat Euch dann am Besten gefallen? Hier geht es lang zur Abstimmung --> Klick

[Javascript] Problem mit Umlauten beim Vergleichen von Strings

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Liebe Cummunity!

Während meiner Arbeit an einer Galerie komme ich zu folgendem Problem:
Ich lese die Background-URL eines DIV aus und vergleiche sie mit URL's in einem Array.

Das funktioniert an sich wunderbar.
Allerdings erkennt JavaScript die Äquivalenz der Strings nicht, sobald ein Umlaut enthalten ist.
Leider verstehe ich das Problem dabei nicht, da ich ja weiß, dass sie gleich sind.

Code:
[COLOR=#bb2510]if[/COLOR](getURL() == $Src)
{
        alert('Es stimmt');
}

Am ende meiner getURL() Funktion steht (damit auch Leerstellen machbar sind):
Code:
[COLOR=#bb2510]return[/COLOR] decodeURI($string);

Wenn ich mir die Strings einzeln ausgeben lasse und vergleiche, sehe ich, dass sie absolut gleich sind.
Aber mein Script bekommt es nicht mit (wie gesagt, wenn ein Umlaut mit drin ist).

Auch, wenn ich beide Strings in der if-Anweisung UTF-8 kodiere, klappt das nicht.


Bin für Hilfe Dankbar!
Liebe Grüße
 

dominik.html

Idared
Registriert
27.04.11
Beiträge
24
Sind die Strings wirklich gleich?

Du darfst allerdings nicht vergessen, dass Umalute in JavaScript generell recht fehleranfällig sind, da die Sprache per se nur auf 28 Zeichen (Alphabet, $ und _) ausgelegt ist. Auch sind manche Server nicht für URLs und Files mit Umlauten ausgelegt. Es wäre hier äußerst interessant, zu erfahren, welche Umalaute du denn genau hast. Nenn' doch ruhig mal einige Beispiele.

Da JavaScript nicht typisiert ist, könnte es ebenfalls sein, dass dein String eben nicht wie ein String, sondern fälschlicherweise wie eine Ganzzahl behandelt wird. Dann wäre mal das eigenhändige Umwandeln mittels String("Dies ist ein String") notwendig, allerdings kann ich mir das nur schwer vorstellen.

Wie gesagt, Beispiele wären gut. Versuch doch mal an bestimmten Stellen zu casten.

Eine Frage noch: Wozu eigentlich $Src? $ ist doch eher PHP als JavaScript.
 

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Das mit der Stringumwandlung hab ich schon versucht, das hat nichts gebracht.
Es handelt sich dabei um so grundlegende Umlaute wie ü, ä und ö.
Das Problem habe ich zum Beispiel in diesem Dateinamen:
"Ernährungsberatung.jpg"

Ich hab zwar jetzt das umbenannt in ae. Allerdings sieht das natürlich nicht sooo top aus :/

Das mit dem $Src haste Recht.
Irgendwie hab ich nach einer längeren PHP-Pause das (versehentlich) übernommen.
Aber stören tut es natürlich nicht sonderlich :)