Ich vergleiche Strings und muss Umlaute in JS ersetzen, aber es scheint, dass JS die Umlaute in den Strings nicht erkennt. Der Text stammt aus der Datenbank und im Browser zeigen die Umlaute gut.
%Vor%Als Suchmuster habe ich versucht:
ä
", " ö
", " ü
" (gut totale Verzweiflung; -)) Um sicher zu sein, dass es keine Sache mit der Replace-Funktion ist, habe ich versucht, indexOf:
%Vor% Aber die Ausgabe mit allen Mustern ist: -1
Ich denke also, es ist ein Problem mit der Kodierung, aber wie gesagt, die Umlaute sehen einfach gut aus.
Irgendwelche Ideen? Das scheint so einfach zu sein ...
BEARBEITEN: Selbst wenn ich meine Antwort gefunden habe, wurde das Problem nicht wirklich "an der Wurzel" gelöst (die Codierung). Dies ist meine Seitenkodierung:
%Vor%Die Datenbank hat: utf8_general_ci
Scheint mir total gut.
Entweder stellen Sie sicher, dass die Kodierung Ihres Skripts richtig angegeben ist (in <script>
tag oder in der Kopfzeile / meta der Seite, wenn sie eingebettet ist) oder geben Sie Symbole mit \uNNNN
-Syntax an, die immer eindeutig zu einem bestimmten Unicode-Kodepunkt aufgelöst werden.
Zum Beispiel:
%Vor%ersetzt immer ä mit ae, unabhängig davon, welche Kodierung für Ihre Seite / Ihr Skript eingestellt ist, auch wenn sie falsch ist.
Hier sind die Codes für die germanischen Sprachen:
%Vor%Hier ist eine Funktion, die die meisten üblichen Zeichen ersetzt, um eine Google-freundliche SEO-URL zu erzeugen:
%Vor%Sie müssen zuerst herausfinden, welche Zeichencodes Sie ersetzen möchten. Je nach Zeichencodierung könnten die Zeichen beispielsweise 8859, UTF-8 oder etwas anderes sein. Sie könnten auch Zeichensymbole wie "ä"
seinAnstatt zu raten, drucken Sie sie aus.
Und beachten Sie, dass Ihre eingehenden Daten möglicherweise nicht den gleichen Zeichensatz / die gleiche Zeichencodierung konsistent verwenden - Sie müssen überprüfen, woher die Daten stammen.
Sehen Sie sich die eingehenden Daten an, indem Sie einen String verwenden. charCodeAt
Überprüfen Sie den Zeichencode vor dem toLowerCase
, um sicherzustellen, dass er keine Änderungen an Ihnen vornimmt. Sie müssen Schritt für Schritt debuggen.
Überprüfen Sie abschließend die Zeichensatzeinstellungen in Ihrem Editor, um sicherzustellen, dass Ihr eingegebenes ä so ist, wie es sein sollte. Vielleicht möchten Sie es über den UTF8-Wert angeben, anstatt ä, ö usw. einzugeben.
Tags und Links javascript encoding replace