Aktionen
Unterstützung #107
offenFormulareingabe auf nicht UTF-8 kodierte Zeichen prüfen
Status:
Neu
Priorität:
Normal
Zugewiesen an:
-
Zielversion:
-
Beginn:
17.11.2015
Abgabedatum:
% erledigt:
0%
Geschätzter Aufwand:
Beschreibung
Ich hab einmal, zum Ausprobieren folgenden Check beim Speichern von Angeboten eingetragen.
use Encode; use Carp; (...) eval { decode("UTF-8", $form->{"longdescription_$i"}, Encode::FB_CROAK); die if $@; 1; } or do { croak "Ungültige Zeichen im Langtext bei Position $i. Fehlerhafte Stelle innerhalb dieser Eingabe:" . $form->{"longdescription_$i"}; };
Und komme dann zu einer Fehlermeldung wie im Anhang beschreiben.
Ich finde das Verhalten um Längen besser, als die lange Fehlerkette von LaTeX, vom Anwender, "parsen" zu lassen.
Im Detail kann/sollte die Prüfung auch anders aussehen (neuer Controller?).
Was ich mir noch wünschen würde, wäre die genaue Stelle des fehlerhaften Zeichens einzugrenzen.
Das hier beschriebene FB_QUIET oder FB_DEFAULT Fehlerhandling lieferte bei mir immer nur die Meldung Zeichenkette enthält wide character, o.ä. zurück:
http://perldoc.perl.org/Encode.html#Handling-Malformed-Data
Offen zur Diskussion ...
Dateien
Aktionen