Zweiteres war zu erwarten, das war ja nur ein Test was tatsächlich beim Forum ankommt. Ich finde es aber interessant, dass die nicht veränderte Variante korrekt angezeigt wird. Wenn die Seite korrekt als UTF8 interpretiert würde müssten in der ursprünglichen Form (erster Teil der Ausgabe) Fragezeichen oder ähnliches erscheinen. Stattdessen sind dort die korrekten Umlaute, in der UTF8 encodierten Variante sind dann offenbar zu viele Encodierungen enthalten und es gibt zwei Buchstaben für jedes Sonderzeichen. Seltsam, seltsam. Eigentlich würde ich daraus schließen dass eine Encodierung nicht notwendig sein sollte, das stimmt aber offenbar nicht.
Das Einzige was mir dazu im Moment noch einfällt wäre die Prüfung der Textlänge mal zu deaktivieren und zu sehen was die Datenbank dazu sagt. Bau also alle bisherigen Änderungen wieder aus und öffne die includes/message_parser.php und kommentiere diese Zeilen aus:
Code: Alles auswählen
1093 // Message length check. 0 disables this check completely.
1094 if ($config['max_' . $mode . '_chars'] > 0)
1095 {
1096 $msg_len = ($mode == 'post') ? utf8_strlen($this->message) : utf8_strlen(preg_replace('#\[\/?[a-z\*\+\-]+(=[\S]+)?\]#ius', ' ', $this->mess age));
1097
1098 if ((!$msg_len && $mode !== 'sig') || $config['max_' . $mode . '_chars'] && $msg_len > $config['max_' . $mode . '_chars'])
1099 {
1100 $this->warn_msg[] = (!$msg_len) ? $user->lang['TOO_FEW_CHARS'] : sprintf($user->lang['TOO_MANY_CHARS_' . strtoupper($mode)], $msg_len, $config['max_' . $mode . '_chars']);
1101 return (!$update_this_message) ? $return_message : $this->warn_msg;
1102 }
1103 }
1104
1105 // Check for "empty" message
1106 if ($mode !== 'sig' && utf8_clean_string($this->message) === '')
1107 {
1108 $this->warn_msg[] = $user->lang['TOO_FEW_CHARS'];
1109 return (!$update_this_message) ? $return_message : $this->warn_msg;
1110 }
Mal sehen was die Datenbank sagt und vor allem was vom Post in der Datenbank ankommt.