töbi: diff_match_patch-Algorithmus fertigstellen, unicode usw.

Hallo

Es gibt da ein ganz genialer Algorithmus um Texte zu vergleichen und Abweichungen zu erkennen:

http://code.google.com/p/google-diff-match-patch/

Dieser Code ist bereits in diversen Programmiersprachen wie Javascript, C#, Java usw. vorhanden.
Nun habe ich ihn auch in PHP implementiert, jedoch ist er noch fehlerhaft.

Grössten teils habe ich noch Probleme mit Sonderzeichen.

Falls jemand helfen kann oder falls es jemanden interessiert gelangt er hier zum Code und weiteren Infos:

http://groups.google.com/group/diff-match-patch/browse_thread/thread/31d06d2b92bbe9b7

Gruss töbi

  1. moin,

    zum Feststellen einer vorliegenden Codierung sind in einem Bitstream Bitfolgen zu finden, die dafür characteristisch sind, d.h. bestimmte Bitfolgen kommen in einer Codierung vor oder auch nicht vor. Hier musst Du ansetzen, es ist jedoch wahrscheinlich so, dass da PHP nicht ganz so komfortabel ist wie Perl:

    unpack("U*", $str) bringt z.B. eine Warnmeldung und zeigt an, welche aufeinanderfolgenden Bits vermisst werden, wenn die Zeichen in $str nicht utf8-codiert sind.

    Hotti

    1. moin,

      zum Feststellen einer vorliegenden Codierung sind in einem Bitstream Bitfolgen

      ich meinte natürlich byte-Folgen. Beispiel: Ich kriege 3 Bytes A,B,C vorgesetzt, und soll die Coderung feststellen. Da kann es erstmal sein, dass das 3 Zeichen sind, die nur jeweils 1 byte benötigen oder ein Zeichen, was 3 Bytes benötigt. Oder auch 2 Zeichen, eins was 1 byte braucht und 1 was 2 bytes braucht und das entweder links oder rechts.

      Entscheidend dazu sind die Übergänge von A -> B, B -> C die für eine bestimmte Codierung charakteristisch sind.

      Ziel erkannt?

      Weitermachen ;-)

      Hotti, mach jetzt Kaffe