Umlaute werden als ? (Fragezeichen) dargestellt
am 02.11.2006 - 20:08 Uhr in
Ich hab das Problem dass auf meiner Seite diverse Bereiche keine umlaute darstellen. Diese werden dann als ? ( Fragezeichen ) ersetzt.
So tauchen in einer eingebundenen Datei (per include) die Umlaute als ? auf, aber in der Beschirftung der Schaltflächen der gleichen Datei werden sie korrekt dargestellt.
Ebenso werden die Umlaute bei den Optionswerten eines Selectfeldes als ? dargestellt.
Zudem ist zum Beispiel die Hilfe von Taxonomy_access damit verunstaltet.
In den Beiträgen an sich tun sich diese Probleme nicht auf.
Das Problem mit der Selectauswahl im Formular scheint mit dem umschreiben der check_plain-Function gelöst zu sein.
function check_plain($text) {
$text = htmlspecialchars($text, ENT_QUOTES);
$text = str_replace( array('ä','ö','ü','Ä','Ö','Ü'),
array('ä','ö','ü','Ä','Ö','Ü'),
$text);
return $text;
}
statt
function check_plain($text) {
return htmlspecialchars($text, ENT_QUOTES);
}
Aber das ist wohl keine feine Lösung.
Ich komme aber einfach nicht darauf wie das Problem wirklich zu lösen ist. Irgendwo muss Drupal die Umlaute ja löschen, aber wo?
Hoffe ihr könnt mir helfen.
- Anmelden oder Registrieren um Kommentare zu schreiben
Drupal arbeitet intern mit
am 02.11.2006 - 21:23 Uhr
Drupal arbeitet intern mit dem charset utf-8 [1].
Wenn Deine Datenbank Kollation unterstützt, solltest Du dort etwas wie utf8_general einstellen.
Du solltest zudem darauf achten, dass dein Theme ein Metatag wie
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
ausgibt.Bei includierten Dateien mußt Du darauf achten, dass diese Dateien mit einem Texteditor erstellt wurden, der utf-8 unterstützt und die Dateien in utf-8 speichert, sonst bekommst Du diese albernen Fragezeichen angezeigt.
[1] http://de.wikipedia.org/wiki/Charset
[2] http://de.wikipedia.org/wiki/Utf-8
--
sanduhrs - drupalcenter
--------------------------------
http://erdfisch.de
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646
Fremde Includes
am 03.11.2006 - 07:12 Uhr
Ich habe das Problem bei einem fremden Inhalt den ich include Funktion einbinde. Da der eigentliche Inhalt sich nicht unter meiner Kontrolle befindet, habe ich keinen Einfluss auf das Charset.
Tja, dann hast du ein
am 03.11.2006 - 07:49 Uhr
Tja, dann hast du ein Problem, denn du kannst nichts sinnvoll includen, von dem du nicht einmal das Charset kennst. Man kann verschiedene Charsets nicht einfach so mischen.
Header und Datenbank sind
am 03.11.2006 - 10:42 Uhr
Header und Datenbank sind und waren auf utf-8 eingestellt. Die Datei die eingebunden wird ist nur PHP-Code (benutze zur Erstellung PHP Designer). Ich kann aber nicht sagen welces Format dieser zur Speicherung benutzt. Ist dies bei einer PHP-Ausgabe überhaupt relevant? Wenn ja, weiß jemand wie ich das Format kontrollieren und ändern kann?
Ich habe in meinem included-File nun alle umlaute durch ihre HMTL-Repräsentation ersetzt (zb. ä=>
ä
). Nun stellt Drupal es korrekt dar. Müsste Drupal das nicht aber von selbst im Kern schon erkennen und ändern?Quote:Ist dies bei einer
am 03.11.2006 - 12:57 Uhr
Ist dies bei einer PHP-Ausgabe überhaupt relevant?
Nein, aber welches Format haben die resultierenden Daten?
Ich habe in meinem included-File nun alle umlaute durch ihre HMTL-Repräsentation ersetzt (zb. ä=>ä).
Weshalb hast Du Umlaute in PHP-Quellcode?
Müsste Drupal das nicht aber von selbst im Kern schon erkennen und ändern?
Die Darstellung ist Sache des Browsers nicht Drupal's.
Sich darum zu kümmern, dass dem System zur Verfügung gestellte Daten mit dem richtigen Charset vorliegen ist Sache des Programmierers.
Hat man keinen Einfluss auf die bereitgestellten Daten kann man spezielle PHP-Funktionen [1][2] nutzen und hoffen daß die Umwandlung funktioniert.
vg
[1] http://php.net/utf8_encode
[2] http://php.net/recode
--
sanduhrs - drupalcenter
--------------------------------
http://erdfisch.de
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646