Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
ticket [2010/07/30 07:51] – gerald | ticket [2024/02/29 13:36] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 50: | Zeile 50: | ||
[[ticket: | [[ticket: | ||
- | |||
- | |||
- | Problem: Aus dem Subject verschwinden die Umlaute und im Body werden die Umlaute falsch dargestellt. | ||
- | |||
- | Lösung zu Subject: | ||
- | |||
- | Umlaute in Subjectzeile. Datenbank-Zeichentabelle ändern: | ||
- | < | ||
- | ALTER TABLE `ost_ticket` CHANGE `subject` `subject` VARCHAR( 64 ) CHARACTER SET latin1 DEFAULT '[no subject]' | ||
- | </ | ||
- | |||
- | |||
- | Die Umlaute im Body korrekt darzustellen, | ||
- | |||
- | Zuerst die Datei include/ | ||
- | < | ||
- | @mysql_query(' | ||
- | @mysql_query(' | ||
- | </ | ||
- | |||
- | ändern in: | ||
- | < | ||
- | @mysql_query(' | ||
- | @mysql_query(' | ||
- | </ | ||
- | |||
- | Jetzt werden alle Nachrichten korrekt dargestellt. Allerdings werden neu empfangene Nachrichten jetzt auch lach latin1 konvertiert und in der Datenbank falsch gespeichert (und dann natürlich auch falsch dargestellt; | ||
- | |||
- | Um das zu beheben, die Datei / | ||
- | < | ||
- | $sql=' | ||
- | ', | ||
- | ', | ||
- | ', | ||
- | ', | ||
- | ', | ||
- | ', | ||
- | |||
- | </ | ||
- | |||
- | Eine Zeile ändern (nämlich die, die die Nachricht speichert): | ||
- | < | ||
- | ', | ||
- | </ | ||
- | |||
- | Jetzt sollte es gehen. | ||
- | |||
- | Problem: Wenn eine Vorlage aus Vorlagendatenbank (Knowlage Base /KB) geholt wird (per Ajax), dann stimmen die Umlaute wieder nicht. | ||
- | |||
- | Lösung: In der Datenbank werden die Umlaute korrekt gespeichert (Tabelle ist Latin1); auch beim Editieren werden sie korrekt dargestellt. Aber nicht, wenn sie via Ajax kommen (liegt wahrscheinlich an dem UTF8 von Ajax; allerdings ist das HTML-Dokument auch UTF8 :( ) | ||
- | |||
- | Geholfen hat es, folgende Zeile in die / | ||
- | Aus: | ||
- | < | ||
- | $sql=' | ||
- | if(($res=db_query($sql)) && db_num_rows($res)) | ||
- | list($response)=db_fetch_row($res); | ||
- | </ | ||
- | |||
- | wird | ||
- | < | ||
- | | ||
- | if(($res=db_query($sql)) && db_num_rows($res)) | ||
- | list($response)=db_fetch_row($res); | ||
- | $response = utf8_encode($response); | ||
- | </ | ||
- | |||
- | Problem: Umlaute werden bei der gesendeten Nachricht falsch dargestellt (also beim Empfänger). | ||
- | |||
- | Geholfen hat es, in der / | ||
- | < | ||
- | //do some cleanup | ||
- | $eol=" | ||
- | $to=preg_replace("/ | ||
- | $subject=stripslashes(preg_replace("/ | ||
- | $body = stripslashes(preg_replace("/ | ||
- | $fromname=$this-> | ||
- | $from =sprintf('" | ||
- | $headers = array (' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ); | ||
- | $mime = new Mail_mime(); | ||
- | $mime-> | ||
- | // | ||
- | if($attachment && $attachment[' | ||
- | $mime-> | ||
- | } | ||
- | $options=array(' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | //encode the body | ||
- | $body = utf8_decode($body);// | ||
- | $body = $mime-> | ||
- | </ | ||
| | ||