Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Umlaute werden einfach nicht ersetzt

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Umlaute werden einfach nicht ersetzt

    Hi Leute,

    ich bin grad echt der Verzweiflung nahe, da momentan selbst der 26. Ansatz ein Paar Umlaute in einem Satz zu ersetzen, nicht funktioniert.

    Eigentlich soll das Script nur aus einem ö ein ö machen...
    PHP-Code:
    CLASS PARSER{
        private 
    $signs = array(
            
    // 'input' => array('HTML-Code', 'Hex-Code', 'without specialsigns');
            
    'Ä' => array("Ä""Ä""Ae"),
            
    'ä' => array("ä""ä""ae"),
            
    'Ö' => array("Ö""Ö""Oe"),
            
    'ö' => array("ö""ö""oe"),
            
    'Ü' => array("Ü""Ü""Ue"),
            
    'ü' => array("ü""ü""ue"),        
            
    'ß' => array("ß""ß""ss"),
            
            
    '"' => array("""'"''"'),
            
    "'" => array("´""'""'"),
            
            
    '&' => array("&"'&''&')    
        );


        public function 
    parse($input$mode){
            foreach(
    $this->signs as $char => $to){
                
    $input str_replace($char$to[$mode], $input);
            }

            return 
    $input;
        }
    }

    $parser = new PARSER();
    $question $parser->parse($_POST['question'], 0); 
    Aber trotz des Scriptes steht in $question immer noch ein ö.

    Das Kuriose ist aber, dass wenn ich mal statt ö ö schreibe, das & ersetzt wird...

    Wäre echt nett, wenn da jemand eine Lösung wüste, denn ich sitz schon ewig dran und hab immernoch keine Lösung.

    Thx, DjScaleo


  • #2
    Schau mal in den Browserquelltext!

    [edit] Sorry, hatte etwas anderes vermutet. Es liegt am Zeichensatz!
    Code:
    header("Content-Type: text/html; charset=utf-8");
    http://hallophp.de

    Kommentar


    • #3
      Als Zeichensatz ist aber auch m Browser utf-8 angegeben und ich gebe die Variable auch mit echo utf8_encode(); aus...

      Die DB ist auf utf8_unicode_ci eingestellt...
      In der DB steht dann in dem Feld, in das ich die Variable schreibe " aäÖüßä", also ignoriert er sozusagen die ä, ö und ü. Komisch nur, dass er das & ersetzt hat...

      Auch wenn ich
      PHP-Code:
      header("Content-Type: text/html; charset=utf-8"); 
      mit ins Script schreibe, bleibt der Eintrag weiterhin "header("Content-Type: text/html; charset=utf-8");"

      DjScaleo

      Kommentar


      • #4
        Ich hatte auch mal son ähnliches Problem, bei mir war bei der php-Datei die falsche Kodierung eingestellt.
        Schau mal ob du die Datei sicher als utf-8 gespeichert hast.

        lg

        Kommentar


        • #5
          Aus welchen Gründen musst du das denn umwandeln?
          htmlspecialchars() ist nicht ausreichend?
          PHP-Code:
          if ($var != 0) {
            
          $var 0;

          Kommentar


          • #6
            Die PHP-Datei war als ANSI gespeichert, aber auch wenn ich diese als UTF-8 speichere, steht in der DB immernoch ö

            Kommentar


            • #7
              PHP: mysql_set_charset - Manual
              auch auf utf8 geschaltet ?
              Signatur:
              PHP-Code:
              $s '0048656c6c6f20576f726c64';
              while(
              $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

              Kommentar


              • #8
                Hab ich auch gemacht. Seit dem ich das gemacht habe, sehe ich ja wenigstens das ö. Vorher sah ich da nur so was wie "öß"

                Kommentar


                • #9
                  Funktioniert denn htmlentities() mit 'UTF-8' als dritter Parameter?

                  Kommentar


                  • #10
                    wow, obwohl es beim ersten Versuch nicht klappt: jetzt klappt es

                    Danke

                    Kommentar

                    Lädt...
                    X