Django: UTF-8 kompatibel

Guten Tag!

wie müsste ich die nachfolgende Codezeile anpassen, damit die ausgelesenen Texte auch korrekt in UTF-8 ausgeben können?

$content .="<a href=\"".(htmlspecialchars($regs[3][0]))."\" target='_blank'>".(htmlspecialchars($regs[1][0]))."</a><br /><br />\n\n";

Mit freundlichen Grüßen

  1. Hast du dir mal die Funktionen

    uft8_encode()
    uft8_decode()

    angesehen?

  2. n'abend,

    Guten Tag!

    wie müsste ich die nachfolgende Codezeile anpassen, damit die ausgelesenen Texte auch korrekt in UTF-8 ausgeben können?

    Deine Freunde heißen utf8_encode() und utf8_decode().
    Falls du mit lustigen Zeichensätzen spielen musst, ist vielleicht auch iconv oder Multibyte String interessant für dich, sofern in der Zielumgebung verfügbar.

    $content .="<a href=\"".(htmlspecialchars($regs[3][0]))."\" target='_blank'>".(htmlspecialchars($regs[1][0]))."</a><br /><br />\n\n";

    htmlspecialchars() kennt weitere Argumente. Du kannst also beispielsweise htmlspecialchars( $string, ENT_COMPAT, 'UTF-8' ); aufrufen, wenn der Eingabestring UTF-8 kodiert ist.

    weiterhin schönen abend...

    --
    #selfhtml hat ein Forum?
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    1. Danke für die Antworten. Aber wie genau muss die folgende Codezeile hinsichtlich einer UTF-8 Kompatibilität angepasst werden bzw. wie muss die Codezeile aussehen?

      $content .="<a href=\"".(htmlspecialchars($regs[3][0]))."\" target='_blank'>".(htmlspecialchars($regs[1][0]))."</a><br /><br />\n\n";  
      
      

      Mit freundlichen Grüßen

      1. n'abend,

        Danke für die Antworten. Aber wie genau muss die folgende Codezeile hinsichtlich einer UTF-8 Kompatibilität angepasst werden bzw. wie muss die Codezeile aussehen?

        $content .="<a href="".(htmlspecialchars($regs[3][0]))."" target='_blank'>".(htmlspecialchars($regs[1][0]))."</a><br /><br />\n\n";

          
        Wenn wir mal davon ausgehen, dass die Werte in $regs UTF-8 kodiert sind (</glaskugel>), würde ich folgendes vorschlagen:  
          
        ~~~php
        $content .= '<a href="'.  
            htmlspecialchars( $regs[3][0], ENT_COMPAT, 'UTF-8' ).  
            '" target="_blank">'.  
            htmlspecialchars( $regs[1][0], ENT_COMPAT, 'UTF-8' ).  
            '</a><br /><br />'.  
            "\n\n";
        

        weiterhin schönen abend...

        --
        #selfhtml hat ein Forum?
        sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
  3. echo $begrüßung;

    wie müsste ich die nachfolgende Codezeile anpassen, damit die ausgelesenen Texte auch korrekt in UTF-8 ausgeben können?

    Da hast du nun schon zwei Antworten bekommen, die vielleicht irgendwas mit deinem Problem zu tun haben könnten. Allerdings können die Anworten auch beliebig falsch sein, denn du hast noch nicht beschrieben, was für ein Problem du lösen möchtest. Beschreibe es bitte möglichst genau. Vor allem interessiert, worauf sich das "ausgelesen" bezieht und wie deine Daten derzeit aussehen.

    echo "$verabschiedung $name";

    1. Mit der besagten Codezeile werden externe RDF-Dateien ausgelesen. Umlaute in den ausgelesenen Texten werden nicht korrekt dargestellt (z.B. ü).

      So wie ich das sehe, muss man die Codezeile dahingehend anpassen, dass diese auch UTF-8 richtig darstellen kann. Und die Frage ist, wie nun die Codezeile aussehen könnte.

      MIt freundlichen Grüßen

      1. echo $begrüßung;

        Mit der besagten Codezeile werden externe RDF-Dateien ausgelesen. Umlaute in den ausgelesenen Texten werden nicht korrekt dargestellt (z.B. ü).

        Das sieht aus, als ob UTF-8 als ISO-8859-1 interpretiert wird.

        So wie ich das sehe, muss man die Codezeile dahingehend anpassen, dass diese auch UTF-8 richtig darstellen kann. Und die Frage ist, wie nun die Codezeile aussehen könnte.

        Du kannst pro Webseite nicht zwei verschiedene Kodierungen miteinander mischen. Entweder du stellst alles auf UTF-8 um, oder du konvertierst die UTF-8-kodierten RDF-Daten in die Kodierung, die deine Seite jetzt verwendet, was jedoch auch Zeichenverlust zur Folge haben kann, da die jetzige Kodierung sicher nicht den vollen UTF-8-Umfang abdeckt. Zur Not wäre noch eine Umwandlung in Entitys oder Numerische Zeichenreferenzen möglich.

        Wenn ich mal vom hierzulande Üblichen ausgehe, wirst du ISO-8859-1 (oder vielleicht Windows-1252) verwenden. Dann wandelt das erwähnte utf8_decode() nach ISO-8859-1 um, zumindest die damit darstellbaren Zeichen. htmlentities() wandelt bei Angabe von UTF-8 als dritten Parameters (charset) in Numerische Zeichenreferenzen. Allerdings wäre es vielleicht jetzt ein guter Anlass, alles komplett auf UTF-8 umzustellen.

        echo "$verabschiedung $name";