Das:
Code: Alles auswählen
function utf8_lang(&$array)
{
if (is_array($array))
{
foreach (array_keys($array) as $key)
{
utf8_lang($array[$key]);
}
}
else
{
$array = utf8_encode($array);
}
}
Code: Alles auswählen
utf8_lang($lang);
Code: Alles auswählen
function utf8_lang(&$array)
{
if (is_array($array))
{
foreach (array_keys($array) as $key)
{
utf8_lang($array[$key]);
}
}
else
{
$array = utf8_encode($array);
}
}
Code: Alles auswählen
utf8_lang($lang);
Wir werden sehen, ob noch Probleme auftauchen..S2B hat geschrieben: Bedenke aber, dass das nur funktioniert, wenn du lediglich die lang_main.php und sonst keine Sprachdatei einbindest. Ansonsten muss der Code anstatt in die lang_main.php an eine Stelle, an der alle Sprachvariablenverfügbar sind (z.B. in die init_userprefs()).
Wenn dies so ist, dann hilft dir das hier weiter KB:165S2B hat geschrieben:Die Seite ist UTF8, die Daten in der Datenbank hingegen ISO-8859-1
Es ist also völlig egal in welcher Kodierung die Daten Server intern gespeichert werden, solange sich beide Seiten auf einen Zeichensatz einigen, da sie so wortwörtlich die gleiche Sprache sprechen.mysqldumper.de hat geschrieben:Jetzt kommen wir zum praktischen Teil:
Seit MySQL 4.0 benutzt MySQL intern zum Speichern von Daten utf8.
Das bedeutet aber nicht, dass Programmierer jetzt zwangsläufig alle Programme auch utf8-kodieren müssen, denn MySQL kann die Daten in jedem gewünschten Zeichensatz liefern. Wir müssen dem Server nur sagen, in welchem Format wir die Daten bekommen möchten und auch in welchem Format wir Daten liefern!
Dazu können Programme nach dem Verbindungsaufbau z.B. den Befehl "SET NAMES latin1" an den MySQL-Server senden.
Dadurch "einigen" sich das Programm und der MySQL-Server darauf, dass der Datenaustausch zwischen beiden über latin1-kodierte Daten geschieht. Werden Daten von einem Programm an den MySQL-Server gesendet, nimmt MySQL die latin1-Daten entgegen, wandelt sie intern in utf8 und speichert sie korrekt.
Fragt das Script Daten ab, dann liest MySQL die Daten aus und wandelt sie vor der Rückgabe an das Script wieder in latin1 um.
Die Kommunikation klappt also perfekt, wenn sich die beiden auf einen Zeichensatz einigen, da sie so wortwörtlich die gleiche Sprache sprechen.