Leerzeichen unterscheiden

Pfiffikus

Member
Hallo allerseits,

ich bin dabei, ein PHP-Skript zu entwickeln, mit dem kontrolliert wird, ob Berufsschüler Texte gemäß DIN 5008 eingeben können. Vieles funktioniert schon zu meiner Zufriedenheit.

An einem Problem beiße ich mir allerding noch die Zähne aus:
Der Text ist in einem Eingabefeld in den Browser einzutippen.
Code:
<textarea cols="55" rows="15" name="aufgText"></textarea>

Kommen im Text 51,30 € oder § 4 oder andere Stellen vor, an denen nicht umgebrochen werden darf, ist kein normales Leerzeichen einzugeben, sondern ein geschütztes Leerzeichen.

In MS WORD gebe ich Shift-Strg-Leertaste ein, um das geschützte Leerzeichen zu tippen.
Was muss man in den Browser eingeben, um es eingeben zu können? Im Firefox funktioniert diese Tastenkombination nicht.

Selbst, wenn man ein geschütztes Leerzeichen aus MS WORD kopiert und ins Textfeld einfügt, macht der Browser ein normales Leerzeichen daraus. (Man versuche mal, hier im Forum einen Beitrag mit einem geschützte Leerzeichen zu posten!)

Ist es möglich, geschützte Leerzeichen in HTML-Textformularen einzugeben?
Wenn ja, welche Tastenkombination muss man eingeben, um geschützte Leerzeichen einzutippen?


Pfiffikus,
der sogar schon die richtige Verwendung von Viertelgeviertstrich und Halbgeviertstrich bei Binde-, Trenn-, Bis-, Strecken,- Gegen,- Auslassungs- und Gedankenstrich richtig auswerten lassen kann
 
Ist es möglich, geschützte Leerzeichen in HTML-Textformularen einzugeben?
In reinen HTML-Formularen kann man dies über den HTML-Steuerbefehl &nbsp; bewerkstelligen.
In WYSIWYG-Editoren kann es dazu entsprechende Funktionen geben, Copy-paste funktioniert aber nicht.

Grund ist dass NBSP kein Zeichen sondern eine Funktionalität der Textverarbeitungsprogramme ist, ein Text-Dokument kann somit kein universelles NBSP enthalten

Eine mögliche Lösung wäre statt ein Copy-paste, die Besucher ein Upload der Textdokumente vornehmen zu lassen, hierzu müssten diese aber mal zuerst in ein möglichst universelles Format umgeschrieben werden (.txt ist dazu nicht tauglich da es kein NBSP kennt) und danach wieder dekodiert werden. Schwerfällig und teilweise problematisch.
Hier wäre ein potentieller Ansatz, die Programme in .html exportieren zu lassen respektiv serverseitig mit entsprechenden Libraries in .html um zu wandeln und dann den <body zu suchen und in diesem alle Tags zu strippen.
Übrig bleiben sollte nur der reine Text _inklusive_ NBSP's.
Htmlentities müssten noch decoded werden und dein aktueller Analyser kann drüber laufen.
 
Ich glaube, hier liegt ein Missverständnis vor. Dem Schüler liegt eine Texteingabebox vor, wie wir sie hier von der Eingabe der Forenbeiträge kennen. Wass müssen die angehenden Bürokaufleute eingeben, damit ein geschütztes Leerzeichen in die Eingabebox eingegben und unverfälscht an meinen Server übertragen wird?

Man kann die Schüler für diesen kleinen Ausbildungszweck nicht erst mit WYSIWYG-Editoren und dergleichen hantieren lassen, selbst wenn es derartige Eselsbrücken geben sollte.


Grund ist dass NBSP kein Zeichen sondern eine Funktionalität der Textverarbeitungsprogramme ist
Es ist kein ASCII- Zeichen, aber der Browser ist in der Lage, sogar die verschiedenen Sorten Striche, griechische und kyrillische Buchstaben an den Server zu übermitteln, nur eben bei diesem einen Zeichen meint der Browser, es besser zu wissen, verfälscht die Eingabe und sendet das gewöhnliche Leerzeichen!



Pfiffikus,
der sich damit nicht so richtig abfinden will
 
em Schüler liegt eine Texteingabebox vor, wie wir sie hier von der Eingabe der Forenbeiträge kennen.
Der erste Teil meines Beitrages sollte erklären _Warum_ es nicht geht. Die Frage war mir klar.

Es ist kein ASCII- Zeichen, aber der Browser ist in der Lage, sogar die verschiedenen Sorten Striche, griechische und kyrillische Buchstaben an den Server zu übermitteln
Ich habe mittlerweile aus Interesse weiter geforscht und raus gefunden dass (die meisten) Browser sehr wohl in der Lage sind NBSP in Textfelder zu senden.
Allerdings (und da kommt meine ganze Annahme und vermutlich das eigentliche Problem her) funktioniert es NICHT wenn man es aus Word copy-pastet. Word übergibt nur ein normales Space, kein NBSP.
Wordpad hingegen funktioniert tadellos mit dem Copy-paste in Firefox und Chrome.
Dies ist reproduzierbar sogar wenn man den Inhalt aus Wordpad in Word und dann per neuen Copy-Paste in den Browser klebt.
 
[ALT] feshalten [2] [5] [5] auf dem Ziffernblock ergibt auch ein Leerzeichen welches durch den anderen ASCII Code von dem Normalen zu unterscheiden ist.
 
Ich habe mittlerweile aus Interesse weiter geforscht und raus gefunden dass (die meisten) Browser sehr wohl in der Lage sind NBSP in Textfelder zu senden.
Allerdings (und da kommt meine ganze Annahme und vermutlich das eigentliche Problem her) funktioniert es NICHT wenn man es aus Word copy-pastet. Word übergibt nur ein normales Space, kein NBSP.
Danke, an dieser Stelle hatte ich den Übeltäter nicht gesucht. OK, für die ersten Übungen ist dieses Programm ohnehin noch verzichtbar.

[ALT] feshalten [2] [5] [5] auf dem Ziffernblock ergibt auch ein Leerzeichen welches durch den anderen ASCII Code von dem Normalen zu unterscheiden ist.
Dankesehr, diese Variante ist ja sogar bei Übungen direkt im Browser zumutbar!


Pfiffikus,
der sich herzlich für die hilfreichen Hinweise bedankt.
 
Back
Top