Kalle_B: Stringlänge bei UTF-8

Hallöle,

in Listen kürze ich gerne Strings, damit lange Begriffe nicht zweizeilig werden.

Zum Testen habe ich den russischen Begriff Администрация города Омска wie alle anderen auf 25 Stellen gekürzt. Ergebnis: Администрац�.. das sind aber nur 14 Stellen und die letzte ist auch noch verstümmelt.

Wie kann ich bei der Stringbearbeitung zusammengehörige Bytes (es können wohl zwei pro Zeichen sein?) erkennen?

MfG Kalle

  1. Hello,

    Wie kann ich bei der Stringbearbeitung zusammengehörige Bytes (es können wohl zwei pro Zeichen sein?) erkennen?

    Dafür gibt es extra die Multibyte-Funktionen
    http://de2.php.net/manual/en/ref.mbstring.php

    Ich bin mir noch nicht sicher, ob es die nicht auch für Arrays (Sortieren) geben müsste...

    Ein harzliches Glückauf

    Tom vom Berg

    http://bergpost.annerschbarrich.de
    .

    --
    Nur selber lernen macht schlau
    1. Hello,

      habe etwas experimentiert ohne Erfolg:

      $string = "Администрация города Омска";
      echo "[".$string."] [".mb_strlen( $string )."]";

      Ergebnis:
      [Администрация города Омска] [50]

      sollte aber nur 26 sein ...

      MfG Kalle

      1. Hello,

        habe etwas experimentiert ohne Erfolg:

        $string = "Администрация города Омска";
        echo "[".$string."] [".mb_strlen( $string )."]";

        Ergebnis:
        [Администрация города Омска] [50]

        sollte aber nur 26 sein ...

        Du solltest den zweiten Parameter nicht unterschlagen.

        echo "[".$string."] [".mb_strlen( $string, 'utf-8' )."]";

        Funktioniert es so?

        Ein harzliches Glückauf

        Tom vom Berg

        http://bergpost.annerschbarrich.de
        .

        --
        Nur selber lernen macht schlau
        1. Hello,

          Du solltest den zweiten Parameter nicht unterschlagen.

          echo "[".$string."] [".mb_strlen( $string, 'utf-8' )."]";

          Funktioniert es so?

          Ja, Klasse. Danke dir.

          MfG Kalle