Neue Beiträge extern verlinken

  • Hallo,

    ich möchte die neuesten Beiträge extern verlinken. Wenn ich nun aber den Titel aus der Datenbank auslesen, werden die Umlaute hässlich dargestellt. Gibt es hier eine Lösung?

    Meine Methode:

    PHP
    <?php
    for ($i=0;$i<=2;$i++){
        $timestamp = strtotime ("".mysql_result($news, $i, "post_date")."");
    echo date('d.m.Y',$timestamp)."<br /><a href='datei.php#post-".mysql_result($news, $i, "id")."'>".mysql_result($news, $i, "post_title")."</a><br /><br />";
    }
    ?>

    Vielen Dank im Voraus,
    Tex

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Zitat

    werden die Umlaute hässlich dargestellt.

    Was heißt häßlich?

    Wird sich um ne UTF-8/latin1 Sache handeln (schau Dir mal das Zeichencode-Format der Tabelle und des Feldes (post_title) an). Wie liegen die Umlaute in der Datenbank vor? Als "echte" Umlaute oder als Entities und wenn ja welche (& #auml; oder & # 252; )?

    Ggf. das Ergebnis der mySQL-Abfrage noch mit PHP Encode/Decode-Funktionen filtern:

    http://manuals.phpforum.de/php/ref.strings.php

    http://praegnanz.de/weblog/html-en…ntities-wandeln

  • @ jowra:

    Vielen Dank zunächst. Das Zeichencode-Format lautet latin1_swedish_ci. Wie die Umlaute vorligen ist eine gute Frage. "müssen" wird [FONT=Verdana][size=10]als "[FONT=monospace][/FONT]müssen" dargestellt.

    Kannst Du mir da genauere Angaben machen bzw. helfen? Wäre sehr nett.
    [/SIZE][/FONT]

  • latin1_swedish_ci ist natürlich nicht so toll (ich glaub das ist aus irgendwelchen Gründen der Standard beim Anlegen von Tabellen...). Normalerweise müßtest Du die Tabelle zumindest in latin1_german_ci konvertieren, aber mal schauen ob es auch so geht.

    Du scheinst ja Zugriff auf die DB per phpMyAdmin zu haben, oder? Wähle mal die Datenbank aus und klicke dann in derganz linken Spalte auf die Tabelle "wp_posts". Die Anzeige auf der rechten Seite ändert sich. Jetzt klickst Du oben bei den Karteireitern auf "Anzeigen", dann erscheint eine Ansicht in der auch die Spalte post_title erscheint. Wie stehen die Umlaute dort? Auch als komische Zeichen?

  • Zitat von jowra


    Normalerweise müßtest Du die Tabelle zumindest in latin1_german_ci konvertieren, aber mal schauen ob es auch so geht.

    Könnte ich machen, falls es hilft. Ich habe kaum Inhalte bisher und bin noch in der Test-Phase.

    Zitat von jowra


    Wie stehen die Umlaute dort? Auch als komische Zeichen?

    Ja.

  • @ jowra:

    Leider hilft mir das nicht weiter. Gibt es dazu noch keine Lösung? Das Problem haben doch sicher noch andere. Es wäre sehr nett wenn Du mir hier weiterhelfen könntest.

  • Okay, ich habs. Zumindest funktioniert es bei mir. Meine Tabellen haben zwar die Kodierung latin1_german_ci, aber der Effekt als ich Deine SQL-Abfrage nachstellte war der Gleiche.

    Versuch mal folgendes:

    PHP
    <?php
    for ($i=0;$i<=2;$i++){
        $timestamp = strtotime ("".mysql_result($news, $i, "post_date")."");
        $news_string = date('d.m.Y',$timestamp)."<br /><a href='datei.php#post-".mysql_result($news, $i, "id")."'>".mysql_result($news, $i, "post_title")."</a><br /><br />";
        echo (mb_convert_encoding($news_string, "UTF-8"));
    }
    ?>
  • Super, wieviel Mühe Du Dir gibst. Ich werde es heute Nachmittag testen und gebe Dir bescheid. Soweit schonmal vielen Dank!

    NACHTRAG:
    Leider hilft das auch nicht. Es sieht aus wie vorher. Ich finde auch die Darstellung des "ü" als "ü" sehr komisch, oder?

    Einmal editiert, zuletzt von Tex (10. Mai 2006 um 14:28)

  • Zitat von Tex

    Leider hilft das auch nicht. Es sieht aus wie vorher. Ich finde auch die Darstellung des "ü" als "ü" sehr komisch, oder?

    Nee, das ist normal.

    Dann kann es nur noch daran liegen, daß Deine Tabelle unter latin1_swedish läuft... mom.

  • Versuch mal:

    mb_convert_encoding($news_string, "UTF-8", "auto")

    Ansonsten bin ich mit meinem Latein auch Ende bzw. ich würde Dir die Konvertierung Deiner Tabellen zu latin1_german_ci oder direkt zu UTF-8 empfehlen, aber das ist nun ein ganz anderes Thema. Anleitung dazu gibts hier, aber auf englisch:

    http://dev.mysql.com/tech-resources….1/unicode.html

    ---

    Btw. Deine HTML-Datei liefert "UTF-8" aus?

    HTML
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  • Zitat von jowra

    Versuch mal:
    mb_convert_encoding($news_string, "UTF-8", "auto")

    Bringt leider auch nichts.

    Zitat von jowra


    Btw. Deine HTML-Datei liefert "UTF-8" aus?

    Jetzt schon. Auch keine Änderung.

    Kann ich nicht einfach die Umstellung auf "latin1_german_ci" unter MySQL vornehmen? Danach dann die Beiträge neu eingeben und es müsste funktionieren?

  • Zitat von Tex

    Kann ich nicht einfach die Umstellung auf "latin1_german_ci" unter MySQL vornehmen? Danach dann die Beiträge neu eingeben und es müsste funktionieren?

    Sollte es. Wie gesagt in meiner testdatenbank hab ich auch latin1_german_ci und da trat zunächst auch Dein Problem auf und mit mb_convert_encoding hat es dann prima funktioniert. Es sei denn, es gäbe noch andere Unterschiede zwischen unserenmySQL-Umgebungen. Mir fallen aber gerade keine anderen ein. ;-)

    Einzelne Ersetzung per PHP geht natürlich auch, aber das ist schon umständlich und im Prinzip betrifft es ja nicht nur ä,ö,ü, usw. sondern alle Sonderzeichen, da müßtest Du ne große Konvertierungs-Tabelle anlegen. ;-)

  • Leider bringt auch dies nichts.
    Kann man die Umlaute nicht normal abspeichern wenn man einen Beitrag erstellt?

    Könntest Du eine Umwandlung von ä, ö, ü und ß? Das würde mir zunächst enorm weiterhelfen.

  • Zitat von Tex

    Könntest Du eine Umwandlung von ä, ö, ü und ß? Das würde mir zunächst enorm weiterhelfen.

    Muß ich mal schauen...

    Ist aber schon komisch, daß das bei Dir alles nicht funktioniert.

  • GELÖST:

    PHP
    echo (mb_convert_encoding($news_string, "ISO-8859-1", "auto"));

    Damit funktioniert alles. Es sei denn ich habe was übersehen.

    Ich danke Dir vielmals. Wenn ich Dir was gutes tun kann, sag bescheid.

  • *lol* Ich wollte vorhin noch fragen, was Du für eine Kodierung in WordPress unter Optionen eingestellt hast. Wahrscheinlich die ISO-8859-1 oder? Ich war von UTF-8 ausgegangen.

    Anyway, schön das das geklappt hat. :-)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!