Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 91

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 91

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 92

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 94

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 94

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 95

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 95

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 97

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 97

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 98

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 98

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 98

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 100

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 100

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 101

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 101

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 101

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 101

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 103

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 103

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 104

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 104

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 104

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 104

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 104

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 106

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 106

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 107

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 107

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 107

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 107

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 107

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 107

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 109

Deprecated: Array and string offset access syntax with curly braces is deprecated in /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php on line 109

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php:91) in system/modules/core/library/Contao/Template.php on line 294
#0 [internal function]: __error(2, 'Cannot modify h...', '/is/htdocs/wp10...', 294, Array)
#1 system/modules/core/library/Contao/Template.php(294): header('Vary: User-Agen...', false)
#2 system/modules/core/classes/FrontendTemplate.php(121): Contao\Template->output()
#3 system/modules/core/pages/PageRegular.php(190): Contao\FrontendTemplate->output(true)
#4 system/modules/core/controllers/FrontendIndex.php(285): Contao\PageRegular->generate(Object(Contao\PageModel), true)
#5 index.php(20): Contao\FrontendIndex->run()
#6 {main}

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp10428379_VX44QQXTRD/seleos.de/system/helper/mbstring.php:91) in system/modules/core/library/Contao/Template.php on line 295
#0 [internal function]: __error(2, 'Cannot modify h...', '/is/htdocs/wp10...', 295, Array)
#1 system/modules/core/library/Contao/Template.php(295): header('Content-Type: t...')
#2 system/modules/core/classes/FrontendTemplate.php(121): Contao\Template->output()
#3 system/modules/core/pages/PageRegular.php(190): Contao\FrontendTemplate->output(true)
#4 system/modules/core/controllers/FrontendIndex.php(285): Contao\PageRegular->generate(Object(Contao\PageModel), true)
#5 index.php(20): Contao\FrontendIndex->run()
#6 {main}
Zeichensalat vermeiden - Teil 2 von 3 | Seleos GmbH

Zeichensalat vermeiden - Teil 2 von 3

von Andreas Gallien (Kommentare: 0)

MySQL auf UTF-8 umstellen

Wenn die bisherige MySQL-Datenbank, deren Tabellen und Felder ISO-8859-1 als Standardzeichensatz verwenden, muss eine Konvertierung der kompletten Datenbank und deren Inhalte nach UTF-8 stattfinden. Dafür sind im Folgenden zwei alternative Wege dargestellt.

  1. Es wird ein Speicherauszug der Datenbank mit dem Hilfsprogramm mysqldump erstellt. Danach wird die damit exportierte Datei nach UTF-8 konvertiert und wieder in das Datenbanksystem importiert. Auf der Linux-Shell sind dafür wenige Befehle notwendig:

    • mysqldump -h my_hostname -u my_username -pmy_password --default-character-set=latin1 --skip-set-charset my_database >latin1.sql
    • iconv -f ISO-8859-1 -t UTF-8 latin1.sql | sed -e 's/latin1_german2_ci/utf8_general_ci/g' | sed -e 's/latin1/utf8/g' >utf-8.sql
    • mysql -h my_hostname -u my_username -pmy_password --default-character-set=utf8 DATABASE <utf-8.sql

    Steht das Werkzeug iconv und sed nicht zur Verfügung, lässt sich alternativ der Datenbankauszug mit einem Texteditor laden und in UTF-8 speichern. Die Ersetzung der Zeichenkette „latin1“ in „utf8“ und einer Sortierfolge wie „latin1_german2_ci“ muss dann entsprechend mit Suchen und Ersetzen im Texteditor wie Notepad++ erfolgen.

  2. Die Alternative zum Konvertieren des Datenbankexports ist das Ändern des Zeichensatzes direkt in den Tabellen und Feldkonfigurationen per SQL-Anweisungen. Auf allen Ebenen lassen sich ALTER-Anweisungen durchführen, um die gesamte Datenbank auf UTF-8 umzustellen und dafür zu sorgen, dass auch neu angelegte Tabellen und Felder jeweils UTF-8 als Standardzeichensatz verwenden.

    • ALTER TABLE my_table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

    Achtung: Die Anweisung CONVERT ändert ggf. den Datentyp eines Feldes, sofern die Größe nach Umstellung auf den neuen Zeichensatz nicht ausreicht, z. B. wird aus Feldern mit dem Datentyp TEXT nach Umstellung von ISO-8859-1 nach UTF-8 ein MEDIUMTEXT. Weitere Hinweise befinden sich in der MySQL-Dokumentation. Um die Anpassung der Datentypen zu vermeiden, müsste direkt auf Ebene der Felder in einer Tabelle eine Anpassung des Zeichensatzes erfolgen.

    • ALTER TABLE my_table MODIFY my_field TEXT CHARACTER SET utf8 COLLATE utf8_general_ci;

In beiden Fällen ist am Ende die Datenbank selbst auf UTF-8 als Standard umzustellen, so dass zukünftige erzeugte Tabellen der Datenbank, automatisch mit den gewünschten Zeichen- und Sortiereinstellungen angelegt werden.

  • ALTER DATABASE my_database DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Damit der MySQL-Server standardmäßig mit UTF-8 als Zeichensatz arbeitet, lassen sich in der Konfigurationsdatei my.cnf von MySQL drei wesentliche Einstellungen vornehmen:

  • [mysqld]
  • character-set-server = utf8
  • collation_server=utf8_general_ci
  • default-character-set = utf8
  • .....

Neuere Versionen des MySQL-Servers sind bereits im Standard für UTF-8 konfiguriert, so dass diese Einstellungen entfallen. Wer unabhängig von den Servereinstellungen eine Client-Verbindung aufbauen möchte, sollte die Verbindung per SQL-Anweisung immer auf UTF-8 umstellen.

  • SET NAMES utf8;

Damit wird der Client-Verbindung mitgeteilt, die Daten als UTF-8 zu übertragen.

Inhalt

  1. Zeichensalat vermeiden - Teil 1 von 3
  2. Zeichensalat vermeiden - Teil 2 von 3
  3. Zeichensalat vermeiden - Teil 3 von 3

Zurück

Einen Kommentar schreiben