Divi: Sonderzeichen finden

Hi Leute
Ich habe das Problem, dass ich aus einer Datei alle Sonderzeichen (wie UTF-8 kodierte Zeichen u.ä.) ersetzen muss...
Ich habe dazu die Möglichkeit das entweder bei der DB Abfrage aus MySQL oder durch einen nachträglichen Parser direkt in der Datei zu ändern.

Gibt es eine Möglichkeit diese Zeichen in der Datei oder der DB zu finden?

  1. hi,

    Ich habe das Problem, dass ich aus einer Datei alle Sonderzeichen (wie UTF-8 kodierte Zeichen u.ä.) ersetzen muss...

    Das ist eine ziemlich ungenaue Definition von "Sonderzeichen".

    Gibt es eine Möglichkeit diese Zeichen in der Datei oder der DB zu finden?

    Ja, natürlich - wenn erst mal feststeht, welche "diese" sind.

    http://www.php.net/manual/de/ref.strings.php

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Entschuldige ... Mein Problem ist, dass ich das nicht genau weiß. Ich weiß nur, dass in PHP UTF-8 Zeichen zugelassen sind und ich bei Zeichen die nicht üblich sind (vermutlich alles was nicht ASCII ist) Probleme bekomme ... Deswegen müsste ich irgendwie versuchen die Zeichen da rauszufiltern. Die Seite die du mir gezeigt hast enthält verschiedene Konstanten ... wär es vielleicht möglich über so etwas wie PREG_MATCH und einer der Konstanten nur die UTF-8 Zeichen rauszusammeln?

      1. Hell-O!

        Ich weiß nur, dass in PHP UTF-8 Zeichen zugelassen sind und ich bei Zeichen die nicht üblich sind (vermutlich alles was nicht ASCII ist) Probleme bekomme

        Welcher Natur sind diese Probleme? Es erscheint mir sinnvoller, an diesem Punkt anzusetzen.

        Siechfred

        --
        Hier könnte Ihre Werbung stehen.
        Musikgeschmack || Steuerliche Einordnung des Rangrücktritts
        1. Moin!

          Ich weiß nur, dass in PHP UTF-8 Zeichen zugelassen sind und ich bei Zeichen die nicht üblich sind (vermutlich alles was nicht ASCII ist) Probleme bekomme

          Welcher Natur sind diese Probleme? Es erscheint mir sinnvoller, an diesem Punkt anzusetzen.

          Stimme zu. Zeichen herauszufiltern bedeutet, dass man diese Zeichen nicht mehr verwenden kann. Das bedeutet, wenn man sich tatsächlich auf ASCII beschränkt, auch keine Umlaute mehr.

          Und das saehe dann schon sehr bloede aus.

          - Sven Rautenberg

          --
          "Love your nation - respect the others."
      2. Ich weiß nur, dass in PHP UTF-8 Zeichen zugelassen sind und ich bei Zeichen die nicht üblich sind (vermutlich alles was nicht ASCII ist) Probleme bekomme

        Wenn UTF-8 zugelassen ist, dann musst du schon ziemlich aussergewöhnliche Sonderzeichen (chinesische Zeichen die über das chinesischen Standard-Repertoire hinausgehen) haben. Nenne doch bitte einmal ein Beispiel.
        lg
        Thomas

        1. Hi Thomas!

          Wenn UTF-8 zugelassen ist, dann musst du schon ziemlich aussergewöhnliche Sonderzeichen (chinesische Zeichen die über das chinesischen Standard-Repertoire hinausgehen) haben.

          Ich glaube eher, dass Divi alle Zeichen, die nicht im ASCII-Code vorkommen rausfiltern möchte und diese dann von UTF-8 in ASCII-Code umwandeln möchte.

          Warum auch immer...

          MfG H☼psel

          --
          "It's amazing I won. I was running against peace, prosperity, and incumbency."
          George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
          Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
          1. Hi Thomas!

            Wenn UTF-8 zugelassen ist, dann musst du schon ziemlich aussergewöhnliche Sonderzeichen (chinesische Zeichen die über das chinesischen Standard-Repertoire hinausgehen) haben.

            Ich glaube eher, dass Divi alle Zeichen, die nicht im ASCII-Code vorkommen rausfiltern möchte und diese dann von UTF-8 in ASCII-Code umwandeln möchte.

            Alle nicht ASCII-Zeichen raus zu filtern wird dann aber schwierig werden, die erste Hälfte des ASCII-Zeichensatzes wäre ja noch kein Problem, das sind ja auch die ersten 128 Zeichen in UTF-8, also quasi die, die aus nur einem Bit bestehen (00-7f), aber die anderen 128 ASCII-Zeichen sind ja quer durch alle anderen UTF-8 Kategorien verteilt.

            Einzige Möglichkeit die ich da sehe wäre, einen String mit allen zugelassenen Zeichen zu definieren (validChars = "01234567890abc..." usw.) und dann für jedes Zeichen zu kontrollieren ob es in dieser Zeichenkette vorkommt. Hab so etwas aber nur einmal in javaScript gemacht, von PHP hab ich leider keine Ahnung.

            Ausserdem, wie möchte er dann die Zeichen die nicht ASCII-Code sind in ASCII-Code umwandeln? Das verstehe ich wiederum nicht.

            Warum auch immer...

            Das ist dann wohl die Frage. Kann mich den Vorpostern nur anschließen, lieber das Feuer bekämpfen als den Rauch (vor allem an so heißen Tagen wie diesem).

            MfG H☼psel

            Schön wie du anhand deines Namens UTF-8 Tauglichkeit demonstrierst ;-)

            lg
            Thomas

            1. Hi Thomas!

              Alle nicht ASCII-Zeichen raus zu filtern wird dann aber schwierig werden [...]

              Das ist nicht weiter schwer. Allerdings erschließt sich mir der Sinn der Sache nicht.

              Ausserdem, wie möchte er dann die Zeichen die nicht ASCII-Code sind in ASCII-Code umwandeln? Das verstehe ich wiederum nicht.

              Auch das würde eventuell noch gehen. Obwohl ich mich da auch erst informieren müsste. ;-)

              MfG H☼psel
              Schön wie du anhand deines Namens UTF-8 Tauglichkeit demonstrierst ;-)

              Das habe ich mir auch nur von ℒacℎgas abgeschaut.

              MfG H☼psel

              --
              "It's amazing I won. I was running against peace, prosperity, and incumbency."
              George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
              Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
          2. echo $begrüßung;

            Ich glaube eher, dass Divi alle Zeichen, die nicht im ASCII-Code vorkommen rausfiltern möchte und diese dann von UTF-8 in ASCII-Code umwandeln möchte.

            Zeichen, die nicht in einer bestimmten Kodierung vorkommen, kann man auch nicht mit dieser darstellen. Möglicherweise meinst du etwas anderes ...

            echo "$verabschiedung $name";

            1. echo $begrüßung;

              Zeichen, die nicht in einer bestimmten Kodierung vorkommen, kann man auch nicht mit dieser darstellen. Möglicherweise meinst du etwas anderes ...

              Hab ich mich auch schon gewundert, eventuell will er sie html-encoden oder so ...

              echo "$verabschiedung $name";

              lg
              Thomas

            2. Hi dedlfix!

              Zeichen, die nicht in einer bestimmten Kodierung vorkommen, kann man auch nicht mit dieser darstellen. Möglicherweise meinst du etwas anderes ...

              1. UTF-8-kodiertes Dokument.
              2. Alle Zeichen, die nicht durch den ASCII-Code darstellbar sind, werden entfernt.
              3. Die verbliebenen Zeichen werden in ASCII-Code übersetzt.

              So habe ich Divi verstanden. Hast _du_ _mich_ verstanden? ;-)

              MfG H☼psel

              --
              "It's amazing I won. I was running against peace, prosperity, and incumbency."
              George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
              Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                1. UTF-8-kodiertes Dokument.
                2. Alle Zeichen, die nicht durch den ASCII-Code darstellbar sind, werden entfernt.
                3. Die verbliebenen Zeichen werden in ASCII-Code übersetzt.

                So habe ich Divi verstanden. Hast _du_ _mich_ verstanden? ;-)

                Naja, so halb. Das würde heißen, dass alle nicht ASCII-Zeichen komplett falsch dargestellt werden. UTF-Zeichen die aus 3 Bytes bestehen wie zB das Euro-zeichen werden dann mit drei seltsamen Zeichen wieder gegeben.
                Ich dachte eher an eine Lösung wo alles, als das dargestellt wird was es ist.

                MfG H☼psel

                lg
                Thomas

              1. echo $begrüßung;

                1. UTF-8-kodiertes Dokument.
                2. Alle Zeichen, die nicht durch den ASCII-Code darstellbar sind, werden entfernt.

                An dieser Stelle bleiben nur noch ASCII-Zeichen übrig.

                1. Die verbliebenen Zeichen werden in ASCII-Code übersetzt.

                Was willst du da noch umwandeln?

                echo "$verabschiedung $name";

                1. yo,

                  1. Die verbliebenen Zeichen werden in ASCII-Code übersetzt.

                  Was willst du da noch umwandeln?

                  von UTF-8 nach ASCII ?

                  Ilja

                  1. yo,

                    1. Die verbliebenen Zeichen werden in ASCII-Code übersetzt.

                    Was willst du da noch umwandeln?

                    von UTF-8 nach ASCII ?

                    Wie wandelst du dann zB ⇝ oder ∰ oder ∻ in ASCII-Zeichen um?

                    Man kann ja vielleicht noch UTF-8 Zeichen anhand von ASCII-Zeichen encodieren, aber das ist dann ja nichts anderes als die normale UTF-8 Kodierung. Als ASCII-Zeichen Ausgeben kannst du sie nicht, und genau darum geht es ja (soweit ich das Ganze verstanden habe)

                    Ilja

                    lg
                    Thomas

                  2. echo $begrüßung;

                    1. Die verbliebenen Zeichen werden in ASCII-Code übersetzt.
                      Was willst du da noch umwandeln?
                      von UTF-8 nach ASCII ?

                    ASCII mit Byte-Werten von 0 bis 127 ist vollständig und mit den selben Byte-Werten in UTF-8 enthalten.
                    Kann es sein, dass Hopsel ISO-8859-1 statt ASCII gemeint hat?

                    echo "$verabschiedung $name";

                    1. Hi dedlfix!

                      Kann es sein, dass Hopsel ISO-8859-1 statt ASCII gemeint hat?

                      Nein. Du machst mich ganz wuschig. Ich habe bloß versucht aus dem Ausgangsposting von Divi die Essenz zu extrahieren. Nichts weiter. Willst du mich nicht verstehen oder "Drück´ ich mich denn so undeutlich aus" (Loriot)?

                      MfG H☼psel

                      --
                      "It's amazing I won. I was running against peace, prosperity, and incumbency."
                      George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                      Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                      1. echo $begrüßung;

                        Ich habe bloß versucht aus dem Ausgangsposting von Divi die Essenz zu extrahieren.

                        Das ist dir dann sicher genausowenig wie mir gelungen, da er sich recht undeutlich ausdrückt. Er möchte UTF-8-Zeichen umwandeln. Nur wohin hat er nicht gesagt.

                        Willst du mich nicht verstehen oder "Drück´ ich mich denn so undeutlich aus" (Loriot)?

                        Dann kamst du und wolltest alles was nicht ASCII ist nach ASCII umwandeln. Das geht aber nicht. Anderes, vielleicht einfacheres Beispiel: Aus einem Text sollen alle Zeichen, die keine Ziffern sind in Ziffern umgewandelt werden. Das geht nur, wenn man 1337 genug ist, mit dem dabei entstehenden Informationsverlust zu leben. (Wir sind das anscheinend nicht, da wir mit Thread Nummer 133336 knapp daneben liegen, aber trotzdem dran vorbei sind. :-)

                        Ich denke, Divi sollte genauer erklären, was er wie umgewandelt haben möchte, oder noch besser: erklären, welche (Zeichen-)Probleme er eigentlich hat und damit bei Siechfreds Nachfrage weitermachen.

                        echo "$verabschiedung $name";

                        1. Hi dedlfix!

                          Dann kamst du und wolltest alles was nicht ASCII ist nach ASCII umwandeln.

                          Quatsch.

                          1. Alle Zeichen, die nicht durch den ASCII-Code darstellbar sind, werden entfernt.

                          Das geht aber nicht.

                          Weiß ich doch. *seufz*

                          Blubb! :-)

                          MfG H☼psel

                          --
                          "It's amazing I won. I was running against peace, prosperity, and incumbency."
                          George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                          Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)