Umlaute machen Ärger

Vorhin hat mich mein Dad darauf hingewiesen, dass das Plugin Search-Hilite keine Umlaute kennt. Eine dumme Sache das, sind Umlaute im Deutschen doch nicht selten.

Search-Hilite sorgt dafür, dass die gesuchten Worte farblich hinterlegt sind. Sucht man zB mit Google oder der WordPress-Suche nach „Korbinian Schoder München Hohenzollernstraße“, so werden diese Suchbegriffe in meinem Blog bunt markiert. Die zwei Worte mit den Umlauten aber würden normalerweise nicht markiert, da das Plugin keine Umlaute kennt.

Eigentlich ist die erwartete Lösung ganz einfach: Man sucht im Quellcode des Plugins die richtige Stelle, lässt dort die Suchbegriffe auf Umlaute durchsuchen und ändert sie in die passende Kodierung. Schnell findet man heraus, dass die Zielkodierung HTML-Dezimal ist. Die WordPress-Suche gibt in der Adressleiste des Browsers einen UTF-8 String, das Blog wurde unter „Einstellungen|Lesen“ auf UTF-8 eingestellt, also sollte die Sache doch klar sein. Tja, sollte. Ich habe fast eine 3/4 Stunde gebraucht um herauszubekommen, dass in der Suchanfrage von Search-Hilite schon ISO 8859-1, also Ä und ä vorliegen 😛
Doofes Ding das.

Die Änderungen nimmt man so vor:

  1. „Plugins|Plugin-Editor|Search_Hilite“ öffnen
  2. Suchen nach

    $term = preg_quote($term, '/');

  3. Davor folgende Zeilen einsetzen, dabei die * in der ersten Zeile entfernen

    $hilite_chars['feed'] = array('&*#196;', '&*#228;', '&*#214;', '&*#246;', '&*#220;', '&*#252;', '&*#223;'); $hilite_chars['ecto'] = array('Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü', 'ß'); $term = str_replace($hilite_chars['ecto'],$hilite_chars['feed'], $term);

  4. „Datei aktualisieren“

Dies dürfte bei vielen Blogs funktionieren. Eine Gewährleistung oder ähnliches gebe ich dafür aber nicht, falls also etwas schief gehen sollte, könnt ihr mich nicht haftbar machen.

Das Umlaut-Highlight ist übrigens Case-sensitive, Groß- und Kleinschreibung in den Suchbegriffen wird also unterschieden.

Ein Gruß geht an Michael Renzmann, der mich mit mit seinem o42clean_umlauts inspiriert hat (oder anders gesagt, ersetzt man im obigen Code „hilite“ mit „o42_cu“ und „$term“ mit „$title“, dann findet man die Zeilen in seinem Plugin)

[Nachtrag] Austricksen der HTML Interpretation in der Anzeige des Codes eingebaut

Stichworte zu diesem Artikel: ,,

7 Kommentare ↓

#1 Alex am 08.06.07 um 12:20

Die Erstellung modularer oder Plugin-basierter Software erfordert eine Gewisse Konsistenz hinsichtlich der beachtung der Zeichenkodierung. Noch schlimmer als der von Dir dargestellte und gefixte Bug, ist die Inkonsistenz bei Pingbacks, bzw. Trackbacks: Bei der Übergabe und anschliessender Verarbeitung durch das „getrackbackte“ Blog bei gleichzeitig willkürlicher Handhabung verschiedener Zeichenkodierungen, werden dann für den User kryptische Zeichen dargestellt. Für den normalen Nutzer, eine Zumutung. Wäre mal gut, wenn sich die unterschiedlichen Macher von Weblog-Software auf eine einheitliche Zeichenkodierung einigen könnten. UTF 8 wäre sicherlich – angesichts der zunehmenden Internationalisierung – keine schlechte Wahl.
Mit vernünftigen Vorgaben in den Coding Guidelines, könnten sich auch freie Developer (siehe Dein Beispiel) besser danach richten.

#2 Marnem am 08.06.07 um 12:40

Yo, das wäre Klasse.

Trackbacks und Pingbacks sind mir als Problemfelder noch gar nicht aufgefallen, dass es hier zu Problemen kommt, ist relativ klar, wenn in den Protokollen keine Zeichenkodierung eindeutig vorgegeben ist.

#3 Alex am 08.06.07 um 14:19

>wenn in den Protokollen keine Zeichenkodierung eindeutig vorgegeben ist.

In XHTML ist es mit der Zeichenkodierung nicht immer so einfach, wie es sich die Developer der jeweiligen Blogsysteme/Plugins/Module machen. Hier mal eine übersichtliche Erläuterung zum Idealzustand in Sachen Übergabe der Zeichenkodierung, Grundlagen die meistens leider kaum beachtet werden…

#4 pufaxx am 09.06.07 um 22:43

Das Umlaute-Problem mit Search-Hilite hab ich ein bisschen anders gelöst.

:-)

#5 Suchmaschinen, Landing sites und Google Reader » Marnems Sicht der Dinge am 21.06.07 um 15:03

[…] einen Search-Hilite (Umlaut-Problematik beachten), das die Suchbegriffe auf der Ergebnisseite farblich hervorhebt, damit schneller ersichtlich wird, […]

#6 Boje am 12.09.07 um 11:40

Danke für die Tips!

#7 Search-Hilite und Googlesuche aus dem Firefox heraus — Marnems Sicht der Dinge am 13.07.08 um 23:22

[…] einem Jahr stellte ich fest, dass Search-Hilite ein Problem mit Umlauten hat. Ich konnte dieses Problem lösen, indem ich den Quelltext des Plugins veränderte. […]

Hinterlassen Sie einen Kommentar


Kommentieren sie zum ersten Mal in diesem Blog? Dann wird Ihr Kommentar erst angezeigt, nachdem Marnem ihn freigeschalten hat. Bitte haben Sie dafür Verständnis.
Welche Daten über Sie gespeichert wurden, können Sie in der Datenschutzerklärung nachlesen.