hotti: Anzahl der eingegebenen Zeichen feststellen

hi,

siehe Thema/Betreff. Problem: Der Benutzer kann die Kodierung bestimmen, und da kann schonmal ein Zeichen ankommen, was Platz braucht für zwei obwohl der Benutzer nur ein Zeichen eingegeben hat. Woran erkenne ich, dass der Benutzer tatsächlich nur ein Zeichen eingegeben hat?

Hotte

--
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  1. siehe Thema/Betreff. Problem: Der Benutzer kann die Kodierung bestimmen, und da kann schonmal ein Zeichen ankommen, was Platz braucht für zwei obwohl der Benutzer nur ein Zeichen eingegeben hat. Woran erkenne ich, dass der Benutzer tatsächlich nur ein Zeichen eingegeben hat?

    Du kannst das nicht feststellen weil mein Firefox unter umständen aus einem "ä" irgend eine Entität bastelt, die sowohl mehrere Bytes als auch Zeichen lange ist.

    Perl misst immer Zeichenlänge, es sei denn du bist in einem anderen Lesemodus wie read();
    Falls du Byte-Platz reservieren musst: char-länge mal 4 sollte reichen.

    "To get the number of bytes that the string would have when encoded as UTF-8, use length(Encoding::encode_utf8(EXPR))."
    http://perldoc.perl.org/functions/length.html

    mfg Beat

    --
    Woran ich arbeite:
    X-Torah
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. hi,

      Du kannst das nicht feststellen weil mein Firefox unter umständen aus einem "ä" irgend eine Entität bastelt, die sowohl mehrere Bytes als auch Zeichen lange ist.

      Benutzereingaben sind doof.

      "To get the number of bytes that the string would have when encoded as UTF-8, use length(Encoding::encode_utf8(EXPR))."
      http://perldoc.perl.org/functions/length.html

      length() mit "use utf8;" ergibt eine 1 bei Zeichen die utf8-kodiert sind. Das wäre ja ok, nur: Wann binde ich das Pragma utf8 ein :)

      Denn es gibt eine Fehlermeldung bei

      use utf8;
      print length('ö');

      => panic: utf8_length: unaligned end at ...

      Mal drüberschlafen, evntl. fällt mir noch was ein.

      Hotte

      --
      Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.