Page 1 of 1

Problem mit Umlauten / Entities

Posted: Wed Mar 28, 2007 1:32 am
by stm999999999
Hallo,

auf http://www.sankt-joseph-siemensstadt.de ... ienst.html (als Beispiel)

werden alle Umlaute als HTML-Entities in den HTML-Quellcode geschrieben. (sowohl Blog-Einträge als auch statische Seiten.)

Wo ist - neben der Tatsache, daß es in meinem privaten Blog nicht so gemacht wird - das Problem? ZB hier:

http://www.sankt-joseph-siemensstadt.de/pages/mrm.html

aus

Code: Select all

den <a href="http://de.wikipedia.org/wiki/Gedenkstätte_Plötzensee" >Hinrichtungsort Plötzensee</a>, wo
im Editor-Feld wird

Code: Select all

den <a href="http://de.wikipedia.org/wiki/Gedenkst�tte_Pl�tzensee" >Hinrichtungsort Pl &# 246; tzensee</a>, wo
(den entity habe ich mit Leerzeichen geschrieben, damit er hier nicht umgewandelt wird - und im Link ist jeweils ein nicht darstellbares Sonderzeichen, das in der Ausgabe hier zum Leerzeichen mutiert.)

in der HTML-Ausgabe, was dann einen fehlerhaften Link ergibt.


Die Texte in der Datenbank sind (laut phpmyAdmin) alle sauber mit Umlauten geschrieben.

Die body-Felder der entries-Tabelle sind utf8_unicode_ci, die der staticpages latin1_swedish_ci!?

das ganze läuft auf einem s9y 1.2-alpha2 etwas älteren Datums - und ich bin mir nicht sicher, ob das Phänomen neu ist.



In einer älteren Version, die ich noch auf meinem USB-Stick habe (1.2-alpha1) wird auch der Umlaut im Link zu HTML-Entities. (was dann auch nicht als Wikipedia-Link funktioniert.

Re: Problem mit Umlauten / Entities

Posted: Wed Mar 28, 2007 4:24 pm
by garvinhicking
Hi!

Hm, kann sowohl am Browser als auch am MySQL-Zeichensatz liegen, sowas ist immer wahnsinnig schwer zu debuggen.

Spiel mal herum mit

* unterschiedlichen collations der SQL-Datenbanktabellen
* der option "Use DBNames" in der s9y konfiguration
* dem zeichensatz in s9y
* deinem browser

Ausserdem mal sämtliche plugins deaktivieren die mit Textformatierung zusammenhängen.

Auch beachten dass bei einer Umstellung ältere beiträge nie geändert werden, nach jeder änderung muss man daher einen neuen testartikel schreiben um zu sehen ob es etwas gebracht hat.

Grüße,
Garvin

Posted: Wed Mar 28, 2007 7:32 pm
by stm999999999
OK, es liegt an den Plugins:

Markup: Textile wandelt alle Umlaute um in &#x123, was angesichts von <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> natürlich unsinnig ist (oder sogar veraltet/ungültig?)

Das macht aber noch nicht das Link-Problem:

Wenn hinterher "Übliche XHTML-Fehler beseitigen" angewandt wird, dann kommt es zu dem komischen Sonderzeichen von Umlauten in Links (aber eben auch nur dort im href!)


Umgekehrt sortiert gibt es das Problem nicht, aber dafür ein anderes:

Wenn man eine URL mit & im Text hat, dann ist das ungut (xhtml und so will das nur kodiert als & amp;). "Übliche XHTML-Fehler beseitigen" kann das korrigieren. Aber im Zusammenspiel mit Textile (in der neuen Reihenfolge) wird daraus wieder eine einfaches & :-(

Also habe ich "Übliche XHTML-Fehler beseitigen" erstmal abgestellt, weil Textile (wenn es alleine agiert) aus dem & ein &# 38; macht, was wiederum valides XHTML ist.

Aber im Grundsatz gefällt es mir nicht wirklich, daß Textile diese ganzen Sonderzeichen anfaßt! Zum einen weil man AFAIK bei gegebener (UTF-)-Deklarierung lieber native Sonderzeichen schreiben soll anstatt Entities. Zum anderen, weil ein Text-Markup-Plugin Markup-Befehle (wie oder h4.) umsetzen soll, aber keine Entity-Umwandlung vornehmen soll! Allerhöchstens per Schalter im Plugin einstellbar!