Umlaute werden in Optionen nicht aufgerufen

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

  • Umlaute werden in Optionen nicht aufgerufen

    Hallo!
    Ich habe ein Problem mit dem Editieren meiner Daten aus einer SQL-Datenbank.
    Wenn ich Daten editieren lassen möchte, lass ich sie aus der Datenbank in den Value der HTML Form ablegen.
    Da dies bei Auswahlmenüs nicht funktioniert, habe ich mich entschlossen, folgende Anweisung zu gestalten:

    if ($line[SPRACHE]=="Französisch"){
    $spracheF = "selected";
    }else{
    $spracheF = "";
    };

    Variable kommt dann in das Options Tag, so, dass die Sprache automatisch angewählt werden soll. Das klappt bei Deutsch, Englisch usw. auch sehr gut. Allerdings habe ich erhebliche Schwierigkeiten mit dieser Methode bei Umlauten. In der Datenbank steht "Französisch", in der Option steht "Französisch" usw. die ISO-8859-1 und für die Datenbank Latin1. Also eigentlich müsste alles super laufen.

    Hat von euch jemand einen Tipp?!?!?

    Danke für eure Hilfe!

  • #2
    PHP-Code:
    $line['SPRACHE'
    so sollte man mit assoziativen Arrays arbeiten.

    Und was ergibt ein
    PHP-Code:
    echo $line['SPRACHE']; 
    Peter

    Btw: irgendwo mit htmlentities oder htmlspecialchars gearbeitet?
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hallo,

      den Satz mit den Zeichencodierungen habe ich nicht verstanden. Wer hat jetzt was? Bitte ausfüllen:

      Datenbank:
      alle Tabellen:
      alle Spalten:
      MySQL-Verbindung:
      PHP-Skript, intern:
      PHP-Skript, HTML-Ausgabe:

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Datenbank:LATIN1
        alle Tabellen:ISO-8859-1
        alle Spalten: ISO-8859-1
        MySQL-Verbindung:ISO-8859-1
        PHP-Skript, intern:keine Ahnung
        PHP-Skript, HTML-Ausgabe: ISO-8859-1

        Ein
        PHP-Code:
        echo $_REQUEST['SPRACHE] 
        ergibt Französisch. Also so, wie es eigentlich sein sollte. Ich verstehe das nicht.

        Kommentar


        • #5
          Und was ergibt
          PHP-Code:
          echo('Französisch'); 
          , wenn es in demselben Skript aufgerufen wird?
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            PHP-Code:
            echo('Französisch'); 
            ergibt "Französisch" :-(

            Kommentar


            • #7
              und
              PHP-Code:
              echo((int)($_REQUEST["SPRACHE"] == "Französisch")); 
              ?
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                PHP-Code:
                echo((int)($_REQUEST["SPRACHE"] == "Französisch")); 
                ergibt "0"

                Kommentar


                • #9
                  Dann ist $_REQUEST["SPRACHE"] auch nicht Französisch! Z. B. " Französisch" oder "Französisch " oder sonstwas. Geh den String doch mal byteweise durch und lass dir die Bytewerte mit
                  PHP-Code:
                  dechex(ord($byte)) 
                  anzeigen.
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Sorry, bin noch ziemlich neu. Wie muss ich das genau anstellen?

                    Danke für Deine Hilfe!!!

                    Kommentar


                    • #11
                      PHP-Code:
                      $string $_REQUEST["SPRACHE"];
                      for (
                      $i 0$i strlen($string); $i++) {
                          echo(
                      str_pad(dechex(ord($string[$i])), 20STR_PAD_LEFT) . " ");

                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Das ist das Ergebnis:

                        "46 72 61 6e 7a f6 73 69 73 63 68"

                        Also Französisch. Wo kann nur der Fehler sein?

                        OffTopic:
                        [COLOR="Red"]*join*[/COLOR] Ändern-Button benutzen!


                        Es muss wirklich am Umlaut liegen. Wenn ich aus "Französisch" "Franzosisch" mache, dann läuft alles wie erwartet.

                        Das verstehe ich nicht!
                        Zuletzt geändert von AmicaNoctis; 19.01.2010, 15:20.

                        Kommentar


                        • #13
                          Und dasselbe mit
                          PHP-Code:
                          $string "Französisch"
                          ?
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            Ja, die gleiche Ausgabe: "46 72 61 6e 7a f6 73 69 73 63 68".

                            Kommentar


                            • #15
                              Wieso hat dann aber
                              PHP-Code:
                              echo((int)($_REQUEST["SPRACHE"] == "Französisch")); 
                              0 ausgegeben?

                              Was ergibt denn $line["SPRACHE"] für eine Hexdarstellung? Wir haben uns ja jetzt mit $_REQUEST befasst, oder hast du zwischendurch schon $line genommen? Dann ist es kein Wunder, dass sich jetzt alles widerspricht.
                              Zuletzt geändert von AmicaNoctis; 19.01.2010, 15:33.
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Kommentar

                              Lädt...
                              X