Support » Allgemeine Fragen » Umlaute in PHP ersetzen

  • Gelöst wootimes

    (@wootimes)


    Hi,

    ich habe das Problem, dass Umlaute wie Ä, Ü, Ö als Fragezeichen ausgegeben werden, obwohl ich UTF-8 verwende. Dann dachte ich mir, ich mache folgendes und ersetze sie. Aber das funktioniert leider nicht. Woran könnte das liegen?

    function sonderzeichen($string){
    $search = array('Ä', 'Ö', 'ü');
    $replace = array('Ae', 'Oe', 'Uu');
    return str_replace($search, $replace, $string);
    }

    echo htmlentities(sonderzeichen($term_letter));

    echo sonderzeichen($term_letter);

    Vielen dank für eure Hilfe.

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Wo genau werden die falsch ausgegeben?
    Hast du nen Link zur spezifischen Seite?

    @aminteractiondesign: Also wenn du unter http://www.creative-dive.de/themes/hannah/glossary/ beim „U“ guckst, dann siehst Du das Fragezeichen anstelle des Umlautes. Die Sache ist auch die, das Replace ja gar nicht funktionieren kann, weil ja ein Fragezeichen ausgegeben wird und kein „Ü“, richtig?

    Hier der Code dazu, wo der Buchstabe ausgegeben wird:

    if ( $glossay_query->have_posts() ) {
    				
        $lt_content = '';	
        $glossary_letter = '';
        $active_letters = array( );
    								
        while ( $glossay_query->have_posts() ) {
            $glossay_query->the_post();
            $term_letter = strtoupper( substr( $glossay_query->post->post_title, 0, 1 ) );
    
           if ( $glossary_letter != $term_letter ) {
               $lt_content .= '<li class="glossary-heading" id="' . $term_letter . '">' .       
               $term_letter;
               $glossary_letter = $term_letter;
               $active_letters[] = $term_letter;
           }
    
       }
       ...
    }
    
    • Diese Antwort wurde geändert vor 2 Jahre, 7 Monate von  wootimes.

    Ich habe den Fehler gefunden, es lag am:

    strtoupper( substr( $glossay_query->post->post_title, 0, 1 ) );

    stattdessen mit:

    mb_strimwidth( $glossay_query->post->post_title, 0, 1 );

    funktioniert es.

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Das Thema „Umlaute in PHP ersetzen“ ist für neue Antworten geschlossen.