Zum Inhalt springen

UTF-8 für Arabisch

Erstellt am 30. März 2007 · Noch keine Antworten

Tags: Frage

johanness ·

Hallo,

ich habe mich bisher durch etliche Threads gelesen und versucht alle Einstellungen vorzunehmen, aber ich schaffe es nicht, Arabisch zum Laufen zu bekommen.

Derzeitiges Problem ist, dass alle Zeichen korrekt (aber nicht als entpsrechend umgewandeltes HTML-Zeichen) in den Fontend-HTML-Code geschrieben werden - nur das Leerzeichen wird als Fragezeichen dargestellt.

Ich habe folgende Einstellungen vorgenommen:

1. Verwendete Versionen:
- Typo3 v4.0.4
- MySQL 5.0.27 (Alle Zellen per PHP-Script auf UTF-8 umgestellt; Neue Daten werden in UTF-8 gespeichert)
- Reseller Packet ohne Root-Zugriff

2. TS-Setup:

page.config.metaCharset = utf-8

3. Installtool-Einstellungen:

$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';

4. MySQL-Setting:

character_set_client  	utf8
character_set_connection 	utf8
character_set_database 	utf8
character_set_results 	utf8
character_set_server 	latin1
character_set_system 	utf8
character_sets_dir 	/usr/share/mysql/charsets/
collation_connection 	utf8_general_ci
collation_database 	utf8_bin
collation_server 	latin1_swedish_ci

Meine Fragen:

1. Bei der Einstellung "foreCharset" stand das dabei. Bedeutet das die DB zu "compare"n?

After changing this setting you must use the Install Tool, “Database Analyzer” to alter all fields in tables.

2. Brauche ich das? was macht es?

[SYS][setDBinit] = SET NAMES utf8 SET CHARACTER SET utf8

3. Da meine MySQL-Version höher als 4.1. ist, brauche ich das nicht. Richtig? (Laut Core Doku Frontend Localization Guide)

$TYPO3_CONF_VARS['SYS']['multiplyDBfieldSize'] = '3';

4. Das PHP-Script, mit dem ich die MySQL umgestellt habe:

<?PHP
    $dbname = 'd004af5b';
    mysql_connect('localhost', 'd004af5b', '7kbaRiBI');
    mysql_query("ALTER DATABASE `$dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin");

    $res = mysql_query("SHOW TABLES FROM `$dbname`");
    while($row = mysql_fetch_row($res)) {
       $query = "ALTER TABLE {$dbname}.`{$row[0]}` CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin";
       mysql_query($query);
       $query = "ALTER TABLE {$dbname}.`{$row[0]}` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin";
       mysql_query($query);
    }
    echo 'all tables converted';
?>

5. Was mache ich falsch?

DANKE!