+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: utf-8-Probleme, Zeichensätze

  1. #1
    Neu an Board
    Registriert seit
    20.04.2010
    Beiträge
    8
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard utf-8-Probleme, Zeichensätze

    Hallo liebe Leut vom Fach! Ich habe schon fleißig recherchiert, aber ich bin mittlerweile ratlos. Ich habe eine kleine Komponente für joomla! 1.5 geschrieben. Es handelt sich hierbei im wesentlichen um die Ausgabe einer schlichten Liste aus einer Tabelle, die in der gleichen mysql-Datenbank wie joomla liegt. Die Datensätze sind utf8-bin kodiert. Wenn ich die Komponenten-Datei ohne joomla! aufrufe, wird alles brav angezeigt, also Umlaute, Sonderzeichen, usw.. Eigentlich egal, mit welchem Header im Kopf, auch mit dem von joomla!:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <head>
    <meta **********="content-type" content="text/html; charset=utf-8" />
    ...

    Eigentlich müsste alles stimmen und so sein, wie es soll.

    Wenn ich jetzt die Komponente durch joomla! aufrufe, werden alle Sonderzeichen zu den berühmten Fragezeichen. Irgendwo in joomla! werden augenscheinlich meine Zeichen versägt. Hat jemand eine Ahnung?

    Leider ist die Site noch nicht online, sie läuft local auf einem wamp.

    Tausend Dank im Voraus.

  2. #2
    Gehört zum Inventar Avatar von SirDrake
    Registriert seit
    29.08.2006
    Ort
    Köln
    Beiträge
    6.268
    Bedankte sich
    164
    Erhielt 2.346 Danksagungen
    in 2.119 Beiträgen
    Gruß Fred
    Fragen und Antworten rund um Joomla! FAQ
    Code-Bereinigung abschalten - Unterstütze Joomla

  3. #3
    Neu an Board
    Registriert seit
    20.04.2010
    Beiträge
    8
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Nein. Leider nicht. Er hat wohl das Problem, dass seine php-Datei im falschen Format abgespeicht ist. Meine component-Liste.php spuckt für sich aber richtige Zeichen aus, in joomla! ausgeführt (die gleiche Datei) aber nicht mehr.

    Als hotfix wird mir nichts anderes übrig bleiben, als alle Sonderzeichen in das html-Format zu ersetzten, bevor joomla! sie zu sehen bekommt. (per php im Script natürlich) Elegant ist das aber nicht.

  4. #4
    Wohnt hier Avatar von Lintzy
    Registriert seit
    17.06.2007
    Ort
    Wuppertal
    Beiträge
    3.310
    Bedankte sich
    300
    Erhielt 1.282 Danksagungen
    in 810 Beiträgen

    Standard

    Das kannst du doch mit notepad++ autmatisiert erledigen -> "konvertiere zu UTF-8" und am besten ohne BOM.

    Hol dir Feedback für deine Website / dein Design! -> Klick
    Mit diversen Bewertungsboxen, Feedback-Kommentaren, egal welches CMS - völlig unkompliziert und kostenlos

    Klick <- Gib Feedback für andere Webdesigns / andere Designs!



  5. #5
    Neu an Board
    Registriert seit
    20.04.2010
    Beiträge
    8
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Meinst du die php-Scriptdateien, oder den Content der Datenbank? Also einen Dump in utf-8 umwandeln und dann wieder zurück? Ich steh gerade auf dem Schlauch.

    Ist es eigentlich entscheidend, in welchem Format die Scriptdateien vorliegen? Der Content mit den Sonderzeichen kommt aus der DB und verlässt doch nie sein Variablendasein, bis er zum Apache weitergereicht wird. Wird der oder das php-Modul durch den Zeichensatz der Scriptdateien irgendwie beeinflußt?

  6. #6
    Wohnt hier Avatar von Lintzy
    Registriert seit
    17.06.2007
    Ort
    Wuppertal
    Beiträge
    3.310
    Bedankte sich
    300
    Erhielt 1.282 Danksagungen
    in 810 Beiträgen

    Standard

    Ich bezog das auf die PHP-Dateien, die du angesprochen hattest. PHP-Dateien liegen als Code auf dem Webspace.

    Datenbankeinträge kann man auch per Script umwandeln.
    • Kopiere folgendes Script in einen Editor.
    • Trage anstatt "localhost", "username", "password" und "database_name" deine zutreffenden Daten ein.
    • Speicher dieses File als "convert.php" ab.
    • Anschließend diese Datei auf deinen Webspace hochladen.
    • Danach mit deinem Browser eine Verbindung zu dieser Datei herstellen (www.deinedomain.de/convert.php)
    • Das Script konvertiert automatisch die Zeichenodierung aller Tabellen zu utf8_general_ci.
    • Abschließend die Datei convert.php wieder löschen.
    <?php
    // your connection
    mysql_connect("localhost","username","password");
    mysql_select_db("database_name");

    // convert code
    $res = mysql_query("SHOW TABLES");
    while ($row = mysql_fetch_array($res))
    {
    foreach ($row as $key => $table)
    {
    mysql_query("ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci");
    echo $key . " => " . $table . " CONVERTED<br />";
    }
    }
    ?>

    Hol dir Feedback für deine Website / dein Design! -> Klick
    Mit diversen Bewertungsboxen, Feedback-Kommentaren, egal welches CMS - völlig unkompliziert und kostenlos

    Klick <- Gib Feedback für andere Webdesigns / andere Designs!



  7. #7
    Neu an Board
    Registriert seit
    20.04.2010
    Beiträge
    8
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Nein, das bringt es leider nicht. Die Daten liegen in der DB bereits als utf-8 vor.

    Das Konvertieren der Scripte in utf-8 mittels notepad++ zerschießt sie, das Rückkonvertieren ins ANSI-Format läßt kaum noch was sinnvolles davon übrig.

    Aber mal davon abgesehen, meine utf-8-Ausgabe funktioniert ja tadellos, nur aus joomla! heraus nicht mehr.

  8. #8
    Wohnt hier Avatar von Lintzy
    Registriert seit
    17.06.2007
    Ort
    Wuppertal
    Beiträge
    3.310
    Bedankte sich
    300
    Erhielt 1.282 Danksagungen
    in 810 Beiträgen

    Standard

    Speicher das oder die Scripte mal als "UTF-8 OHNE BOM" ab.

    Das Konvertieren zerschießt nur Dateien, die schon per HTML-Entities (ü= &uuml; - z.'B.) "umgewandelt" wurden, meine ich jedenfalls.

    Mir hat es jedenfalls nur solche PHP (Language)-Dateien zerschossen. Alles andere lässt sich problemlos konvertieren.

    Btw. woher sollte ich wissen, welche Kollation deine Datenbanken haben ;-)
    .

    Hol dir Feedback für deine Website / dein Design! -> Klick
    Mit diversen Bewertungsboxen, Feedback-Kommentaren, egal welches CMS - völlig unkompliziert und kostenlos

    Klick <- Gib Feedback für andere Webdesigns / andere Designs!



  9. #9
    Moderator Avatar von time4mambo
    Registriert seit
    11.12.2006
    Ort
    76646 Bruchsal
    Alter
    54
    Beiträge
    14.337
    Bedankte sich
    455
    Erhielt 2.970 Danksagungen
    in 2.789 Beiträgen
    Schulungen, Webentwicklung: time4mambo
    (Video-)Tutorials: time4joomla

  10. #10
    Neu an Board
    Registriert seit
    20.04.2010
    Beiträge
    8
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Danke. Aber das sind alles Notlösungen, die darauf hinauslaufen, das Zeichensatzproblem zu umgehen, indem man sich auf ASCI beschränkt. Also Austausch aller Sonderzeichen in die HTML-Entsprechungen. Ihr habt das mit statischen Dateien im Editor gemacht, ich müßte den Text aus der Datenbank - der ja als utf-8 vorliegt - mittels strtr-Funktionen und ellenlangen Listen übersetzen und ALLE Sonderzeichen herausfiltern. Dieser Hack wäre auch mein letzter Ausweg. Mir gefällt er aber nicht, er ist auch fehleranfällig. Die Datenbank ist dynamisch, es werden über Formulare neue eingepflegt. In dem Moment, wo jemand irgendein Zeichen eingibt, was ich vergessen habe, wird ein Fragezeichen ausgeworfen.

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein