30. 03. 2007, 13:40

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 - [b]nur das Leerzeichen wird als Fragezeichen dargestellt.

Ich habe folgende Einstellungen vorgenommen:[/b]
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:
[TS]page.config.metaCharset = utf-8
[/TS]

3. Installtool-Einstellungen:

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

4. MySQL-Setting:

  1. character_set_client utf8
  2. character_set_connection utf8
  3. character_set_database utf8
  4. character_set_results utf8
  5. character_set_server latin1
  6. character_set_system utf8
  7. character_sets_dir /usr/share/mysql/charsets/
  8. collation_connection utf8_general_ci
  9. collation_database utf8_bin
  10. collation_server latin1_swedish_ci

[b]Meine Fragen:[/b]

1. Bei der Einstellung "foreCharset" stand das dabei. Bedeutet das die DB zu "compare"n?
[TS]After changing this setting you must use the Install Tool, “Database Analyzer” to alter all fields in tables.[/TS]

2. Brauche ich das? was macht es?

  1. [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 [url=http://typo3.org/documentation/document-library/core-documentation/doc_l10nguide/1.0.0/view/1/2/#id2716476]Frontend Localization Guide[/url])

  1. $TYPO3_CONF_VARS['SYS']['multiplyDBfieldSize'] = '3';
[/TS]

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

  1. <?PHP
  2. $dbname = 'd004af5b';
  3. mysql_connect('localhost', 'd004af5b', '7kbaRiBI');
  4. mysql_query("ALTER DATABASE `$dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin");
  5.  
  6. $res = mysql_query("SHOW TABLES FROM `$dbname`");
  7. while($row = mysql_fetch_row($res)) {
  8. $query = "ALTER TABLE {$dbname}.`{$row[0]}` CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin";
  9. mysql_query($query);
  10. $query = "ALTER TABLE {$dbname}.`{$row[0]}` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin";
  11. mysql_query($query);
  12. }
  13. echo 'all tables converted';
  14. ?>

[b]5. Was mache ich falsch?[/b]

DANKE!