[PHP5] UTF8 wieder...

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

  • [PHP5] UTF8 wieder...

    Tach alle zusammen,

    Also ich dreh hier bei solchen Fehlern immer am Rad.

    Ich habe die meisten meiner Klassen nun so geändert, dass sie einen Text mit utf8_decode(); wieder ausgeben.

    In die Datenbank schreibe ich mit utf8_encode(); udn somit wird zB. aus: öäüßÖÄÜß dies: öäüßÖÄÜß

    Seit Wochen klappt das auf diese Weise.
    Nun lese ich diesen String zB. wieder aus der DB aus und will diesen darstellen. Dafür dachte ich eben natürlich wieder.... nimmst wieder utf8_decode() um das ganz wieder zurück zu convertieren aber nein es sind nur ?????? in einer Raute zu sehen. Lasse ich hier den Text nochmals durch utf8_encode() laufen, so stellt er mit wieder die korrekten zeichen dar. Ist das nicht in dem Fall doppelt über "encode" gelaufen und dürfte garnicht funktioneren?

    Ich versteh das immer nicht... einmal so einmal so...

    Mario

  • #2
    wieso wurschtelst du denn so herum mit den Konvertierungen und hälst nicht einfach Ausgabe, Datei und Datenbank in UTF-8?? Gibt es einen Grund, das du mit utf_decode bzw utf_encode arbeitest?

    Kommentar


    • #3
      japp, sieht schon fast so aus, als ob du UTF-8 nochmal encoded in die DB gespeichert hast?

      Kommentar


      • #4
        Re: [PHP5] UTF8 wieder...

        Original geschrieben von GELight
        Ich versteh das immer nicht... einmal so einmal so...
        Tja, wer soll das schon noch verstehen - dieses Rumgehampel ohne jeden Plan ...?


        Mach dir doch bitte erst mal einen vernünftigen Plan - wo kann/sollte ich überall UTF-8 verwenden, wo ist dies ggf. technisch nicht möglich, wo sind also Umkodierungen in die eine oder andere Richtung nötig, etc.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          in db -> utf8_decode()
          aus db -> utf8_encode()

          Kommentar


          • #6
            in db -> utf8_decode()
            aus db -> utf8_encode()
            Warum nicht gleich überall UTF-8?
            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

            Kommentar


            • #7
              [PHP5] UTF8

              Warum nicht gleich überall UTF-8?
              Und wie mache ich das?
              Ich hab bisher immernur beim Thema UTF8 von diesen beiden Funktionen gelesen.

              in db -> utf8_decode()
              aus db -> utf8_encode()
              Mist... dann habe ich wohl doch das ganze verdreht genutzt.

              Aber egal... wenn Ihr sagt es geht auch ohne die Funktionen, dann wäre ich über einen Tipp diesbezüglich sau dankbar, da ich hier, wie ihr wahrlich schon richtig bemerkt habt, ziemlich rumeiere um das Problem der verschiedenen zeichensätze unter einen Hut zu bekommen.

              Gruß, Mario

              Kommentar


              • #8
                ich gehe mal davon aus, dass du mysql verwendest. aber welche version?

                gruß
                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  hier gibts sehr gute Infos:

                  http://blog.koehntopp.de/archives/14...rundlagen.html

                  Kommentar


                  • #10
                    [PHP5] UTF8

                    Ich verwende MySQL 4.x ... aufwärts...

                    Mein System sollte möglichst auch auf typischen öffentlichen Servern von irgendwelchen Anbietern laufen... ohne, dass man irgendwelche Konfigurationen machen muss, für die man als normaler User meistens keine Rechte hat. Das ganze sollte natürlich auch für die ganzen Datenbanksachen gelten.

                    @Koala... dein Link ist für mich Forbidden...

                    Gruß, Mario

                    Kommentar


                    • #11
                      http://blog.koehntopp.de/archives/14...rundlagen.html

                      seltsam: Direktaufruf geht nicht - ich kann auch keinen Unterschied in der URL erkennen.

                      Aber mit Rechtsklick, Link kopieren, in der Browseradreßzeile einfügen gehts.

                      Die Frage nach der Version war wegen der utf8-Unterstützung von mysql.
                      Zuletzt geändert von Koala; 10.05.2007, 00:14.

                      Kommentar


                      • #12
                        Ich verwende MySQL 4.x ... aufwärts...

                        Mein System sollte möglichst auch auf typischen öffentlichen Servern von irgendwelchen Anbietern laufen...
                        Das kommt vor. Dir ist aber bewusst, dass viele Features erst ab Version 4.1 verfügbar sind? Z.B. UTF-8-Unterstützung? Wenn ich mich richtig erinnere auch Sachen wie Sub-Selects, GROUP_CONCAT,...

                        LG

                        Kommentar


                        • #13
                          [PHP5] UTF8

                          @kuddeldaddeldu: genau genommen arbeite ich schon optimiert mit MySQL 5.1... sollte also so kein Problem mehr darstellen denke ich.

                          @Koala: ...danke nochmal für deinen Link. Hat mich erstmal etwas weiter gebracht. Das heißt, ich lasse meine Tabellen gleich beim erstmaligen anlegen mit
                          PHP-Code:
                          Create Table... ....TYPE MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
                          anlegen. Da das CHARACTER SET ja bei keiner expliziten Angabe der Spalte an die Spalten weiter vererbt wird, reichen diese Angaben ja aus, um meine tabelle komplett in UTF8 zu halten oder?

                          Nun gehts bei mir ja weiter.
                          Habe in einem Posting hier im Forum eben auch gesehen, dass bei "jedem" Query, den ich an die DB schicke, vorher diese Querys ausführen sollte.... ist das richtig?

                          PHP-Code:
                          mysql_query("SET NAMES 'utf8'") OR DIE (mysql_error());
                          mysql_query("SET CHARACTER SET 'utf8'") OR DIE (mysql_error()); 
                          Im Endeffekt muss ich jetzt nur noch wissen, wie ich arbeiten muss, wenn ich etwas eintrage oder auslese und in einer Seite darstellen will.

                          Mario

                          Kommentar


                          • #14
                            Re: [PHP5] UTF8

                            Original geschrieben von GELight
                            @Koala: ...danke nochmal für deinen Link. Hat mich erstmal etwas weiter gebracht. Das heißt, ich lasse meine Tabellen gleich beim erstmaligen anlegen mit
                            PHP-Code:
                            Create Table... ....TYPE MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
                            anlegen. Da das CHARACTER SET ja bei keiner expliziten Angabe der Spalte an die Spalten weiter vererbt wird, reichen diese Angaben ja aus, um meine tabelle komplett in UTF8 zu halten oder?
                            Die Daten sollen so oder so als UTF8 in der Datenbank gespeichert werden

                            Nun gehts bei mir ja weiter.
                            Habe in einem Posting hier im Forum eben auch gesehen, dass bei "jedem" Query, den ich an die DB schicke, vorher diese Querys ausführen sollte.... ist das richtig?
                            Welche bescheuerten Postings hast du denn gelesen? Oo
                            EINMAL nach dem Connect den SET NAMES-Query, nicht vor jedem Query und den zweiten Query kannst du ganz vergessen

                            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                            Wie man Fragen richtig stellt

                            Kommentar

                            Lädt...
                            X