Seite 1 von 1

UTF-8 mal anders

Verfasst: Di 22. Mär 2016, 20:14
von rethus
Es ist ja nicht so, als wenn schon alle UTF-8 Probleme hier vorgekommen wären :lol: ich habe ein neues, das mir so noch nie untergekommen ist.
Vielleicht können wir es mit gemeinsamen Gehirnschmalz lösen:

Also nach Upgrade auf 4.9.9 läuft alles sauber auf utf-8.
Alles, bis auf den RSS-Reader
umlaute.jpg
umlaute.jpg (228.4 KiB) 2974 mal betrachtet
im Backend, der über Contenido-News berichtet, und bis auf die Namen der Module im Bereich "Style ⇒ Module", linke Spalte mit den gelisteten Modulen.

[so, jetzt wird's komisch].

In der Liste links, wo ich die Module auswählen kann, werden die Umlaute zerschossen dargestellt. Nehmen wir mal mein Testmodul: Testmüdöll zu Demo-Zwecken.

In der Liste auf der Linken Seite wird es als "Testmüdöll" angezeigt. Klicke ich es an, wird der Modulname und auch Umlaute in dem Modul (in der Bearbeitungsansicht) richtig dargestellt (bild bitte hier im Forum runter scrollen!):
contenido_modul_utf_bug.jpg
contenido_modul_utf_bug.jpg (115.57 KiB) 2975 mal betrachtet
Zuerst schaue ich also in meinen Browser... Zeichencodierung UTF8
Dann schaue ich mir den Quelltext des Navi-Frames an "UTF8"
Somit werden die Zeichen schon falsch ausgeliefert (und nicht vom Browser verwurschtelt).

Also gehe ich in die DB und gebe mir die Config in Sachen Zeichensatz aus:

Code: Alles auswählen

show variables like "character_%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
Sieht gut aus, oder?! :!:

Also weiter... Wo ist mein Modul... /cms/modules/testmuedoell.
Dort checke ich mal die info.xml, die ja den Modulnamen enthält:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<module><name>Testmüdöll</name><description>ösi wäre öäpzß</description><type/><alias>testmuedoell</alias></module>
Joahhh, sieht doch auch gut aus.

Nächste Station... ist die Datei wirklich als UTF-8 gespeichert?
'file info.xml' ergibt:

Code: Alles auswählen

info.xml: XML 1.0 document, UTF-8 Unicode text
Also auch UTF8.

Ein Blick in die /data/production/config.php ... hier irritiert mich nur eins... oben bei der DB ist charset auf UTF-8 gesetzt, weiter unten am Ende der Datei steht auch was von einem UTF-8 Flag, aber weit und breit keins zu sehen... fehlt hier ggf. eine Configeinstellung:

Code: Alles auswählen

/**
 * Extended database settings. This settings will be used from CONTENIDO 4.9.0.
 *
 * @since  CONTENIDO version 4.9.0
 */
$cfg['db'] = array(
    'connection' => array(
        'host'     => 'localhost', // (string) The host where your database runs on
        'database' => 'myDB',   // (string) The database name which you use
        'user'     => 'myUser', // (string) The username to access the database
        'password' => 'meinPasswort', // (string) The password to access the database
        'charset'  => 'utf8', // (string) The charset of connection to database
    ),
    'haltBehavior'    => 'report', // (string) Feasible values are 'yes', 'no' or 'report'
    'haltMsgPrefix'   => (isset($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] . ' ' : '',
    'enableProfiling' => false,    // (bool) Flag to enable profiling
);

/* Section 3: UTF-8 flag
 * ----------------------------
 *
 * Setting for UTF-8 flag
 *
 * @since    CONTENIDO version 4.9.5
 */
In der config.misc.php habe ich zur Vorsicht auch nochmal den default-charset für php geprüft:

Code: Alles auswählen

 $cfg['php_settings']['default_charset'] = 'UTF-8';
Auch ok...


So, jetzt kommt Ihr...

... habt Ihr eine 4.9.9er am Start und ggf. das gleiche Problem?

...habt Ihr irgend eine Idee, warum er mir im Contenido-Backend - und zwar nur in der Modul-Liste (und RSS-News auf dem Dashboard), die Daten fehlerhaft ausgibt?
Artikel, Umlaute im Backend... alles funktioniert, warum dies nicht?


==========
PS: Nur am Rande, in der Config von 4.9.9 ist immernoch folgende Config-Zeile enthalten:

Code: Alles auswählen

$cfg['path']['pear']                    = $cfg['path']['frontend'] . '/pear/';

Könnte man mal rausnehmen, oder? 4.9.9 verwendet doch gar kein pear mehr!!

Re: UTF-8 mal anders

Verfasst: Di 22. Mär 2016, 20:55
von Faar
Güt, dass du das mal ansprichst, denn dieses utf-8 Pröblem störte mich auch schon.

Modüle habe ich noch nie mit ümlauten geschrieben.

:roll:

Re: UTF-8 mal anders

Verfasst: Do 24. Mär 2016, 09:16
von frederic.schneider_4fb
Wenn Du in der config.php das UTF8-Flag setzt:

Code: Alles auswählen

define("CON_UTF8", true);
Und dann noch einmal das Upgrade durchführst - behebt das die Probleme? Wir haben von Version 4.9.8 auf 4.9.9 allerdings außer Sicherheitslücken zu stopfen nichts geändert.

Re: UTF-8 mal anders

Verfasst: Do 24. Mär 2016, 09:47
von frederic.schneider_4fb
rethus hat geschrieben:PS: Nur am Rande, in der Config von 4.9.9 ist immernoch folgende Config-Zeile enthalten:

Code: Alles auswählen

$cfg['path']['pear']                    = $cfg['path']['frontend'] . '/pear/';

Könnte man mal rausnehmen, oder? 4.9.9 verwendet doch gar kein pear mehr!!
Das fliegt gleich raus ;-)

Re: UTF-8 mal anders

Verfasst: Sa 26. Mär 2016, 13:34
von rethus
frederic.schneider_4fb hat geschrieben:Wenn Du in der config.php das UTF8-Flag setzt:

Code: Alles auswählen

define("CON_UTF8", true);
Und dann noch einmal das Upgrade durchführst - behebt das die Probleme? Wir haben von Version 4.9.8 auf 4.9.9 allerdings außer Sicherheitslücken zu stopfen nichts geändert.
Wo genau soll ich den define einfügen. Einfach in die Config? Und wann? Vor dem Upgrade auf 4.9, oder danach?