Pummuckel: UTF-8 in mysql Datenbank

Beitrag lesen

Hallo,

Welche Version von PHPMyAdmin hast du? Ich habe eine Loginseite gefunden, auf der man sich auswählen kann, welche Sprache verwendet werden soll, und da war "Deutsch" sowohl als "ISO-8859-1" und auch als "UTF-8" auswählbar - letzteres brauchst du mindestens mal. Das war Version 2.6.0-alpha 2 (was Google so alles findet).

Ich habe immer die aktuellste natürlich. :) Das mit den Sprachen ist ja wohl klar. Damit habe ich auch schon einige Stunden rumexperimentiert. Ohne Erfolg.

In Version 2.5.7-pl2 gibts diese Auswahlliste auch. Alte Versionen haben das aber nicht. Aktualisiere dein PHPMyAdmin auf jeden Fall mal.

Siehe oben.

Aber dir kann natürlich immer noch passieren (das habe ich nicht getestet), dass PHPMyAdmin eine Prüfung der verwendeten MySQL-Version vornimmt und konvertiert.

Ich habe mysql 4.0.20a

Dann kannst du PHPMyAdmin nicht nehmen, sondern mußt dir - hatte ich aber schonmal geschrieben - selbst kurz eine Oberfläche zum Füllen der DB schreiben. Das kann doch nicht so schwer sein.

Ja aber wie machen die anderen Leute das denn? Kann mir nicht vorstellen, dass die sich eine eigene Oberfläche schreiben.

Hier ist der der relevante Teil der phpmyadmin config:

/**
 * Language and charset conversion settings
 */
// Default language to use, if not browser-defined or user-defined
$cfg['DefaultLang'] = 'en-iso-8859-1';

// Force: always use this language - must be defined in
//        libraries/select_lang.lib.php
// $cfg['Lang']     = 'en-iso-8859-1';

// Default charset to use for recoding of MySQL queries, does not take
// any effect when charsets recoding is switched off by
// $cfg['AllowAnywhereRecoding'] or in language file
// (see $cfg['AvailableCharsets'] to possible choices, you can add your own)
$cfg['DefaultCharset'] = 'iso-8859-1';

// Allow charset recoding of MySQL queries, must be also enabled in language
// file to make harder using other language files than unicode.
// Default value is FALSE to avoid problems on servers without the iconv
// extension and where dl() is not supported
$cfg['AllowAnywhereRecoding'] = FALSE;

// You can select here which functions will be used for charset conversion.
// Possible values are:
//      auto   - automatically use available one (first is tested iconv, then
//               recode)
//      iconv  - use iconv or libiconv functions
//      recode - use recode_string function
$cfg['RecodingEngine'] = 'auto';

// Specify some parameters for iconv used in charset conversion. See iconv
// documentation for details:
// http://www.gnu.org/software/libiconv/documentation/libiconv/iconv_open.3.html
$cfg['IconvExtraParams'] = '';

// Available charsets for MySQL conversion. currently contains all which could
// be found in lang/* files and few more.
// Charsets will be shown in same order as here listed, so if you frequently
// use some of these move them to the top.
$cfg['AvailableCharsets'] = array(
    'iso-8859-1',
    'iso-8859-2',
    'iso-8859-3',
    'iso-8859-4',
    'iso-8859-5',
    'iso-8859-6',
    'iso-8859-7',
    'iso-8859-8',
    'iso-8859-9',
    'iso-8859-10',
    'iso-8859-11',
    'iso-8859-12',
    'iso-8859-13',
    'iso-8859-14',
    'iso-8859-15',
    'windows-1250',
    'windows-1251',
    'windows-1252',
    'windows-1256',
    'windows-1257',
    'koi8-r',
    'big5',
    'gb2312',
    'utf-8',
    'utf-7',
    'x-user-defined',
    'euc-jp',
    'ks_c_5601-1987',
    'tis-620',
    'SHIFT_JIS'
);

Und wie stellt man die mysql DB komplett auf utf-8 um.

Gar nicht. Entweder hast du MySQL 4.1 (das gibts bislang nur als Alphaversion, die produktiv einzusetzen ist nicht ratsam), oder du hast eine Version davor - die kann zwar UTF-8-Zeichen speichern, aber sie versteht sie nicht - was den Speichervorgang nicht beeinträchtigt.

Und was ist dann mit folgendem Artikel ?
http://climbtothestars.org/archives/2004/07/18/converting-mysql-database-contents-to-utf-8/