ubuntuusers.de

HTML: Probleme mit UTF-8 Codierung externer Daten

Status: Ungelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6509

Wohnort: Hamburg

Für meine interne Dokumentation möchte ich einige Shellscripte in HTML Dateien Einbinden. Da die Scripte ständigen Verbesseungen unterliegen, möchte ich sie nicht direkt in die HTML Dateien einbauen, zumal sie in mehreren Dateien auftauchen.

Zunächst hatte ich es mit iframes versucht und dann noch mit object, jedoch war beide Male das Ergebniss unbefridiegend. Das Problem ist, das Umlaute nicht richtig dargestellt werden. Zuletzt hatte ich es mit folgendem Konstrukt versucht:

<object data="nextboot.txt" type="text/plain;charset=UTF-8" name="box1" width="80%" height="300" style="background-color: #F7F9FA;border: 1px solid #0000FF;" >
Keine object Unterstützung.
</object>

Google hat mir verraten, das es derzeit wohl kaum einen Browser gibt, der in solchen Konstukten "charset" unterstützt.

Kennt jemand eine weitere Möglichkeit externe Textdateien innerhalb von HTML Dokumenten korrekt darzustellen ohne die Mithilfe eines Servers (ich möchte die Docs auf USB-Stick mitnehmen können)?

posti

Anmeldungsdatum:
30. März 2009

Beiträge: 2087

Hi

Du kannst doch ein beliebiges File in einer PHP auslesen und in die anzuzeigende HTML 'einbauen' - so könntest Du die jeweils aktuelle Datei einbinden und Diese, sobald eine neue Version vorliegt, Diese hochladen und der Inhalt ändert sich entsprechend.

Meine letzten PHP-Operationen sind aber schon einige Tage her :/

MfG

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7790

Die Textdateien in HTML umwandeln ist keine Option? Schreib dir ein Script dafür. 😉

Dakuan

(Themenstarter)
Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6509

Wohnort: Hamburg

Ich wollte ja eigentlich ohne Script auskommen da dies ja auch bei jeder Änderung gestartet werden muss. Und ich arbeite daran ja nicht täglich, sondern nur Nachbesserungen erforderlich sind. Und ich habe die Korrekturen in der Doku schon einige Male verschlampt, desshalb soll das automatisch gehen.

Wenn schon Script dann Javascript, aber damit habe ich bisher wenig gemacht. Aber wenn man damit folgendes machen könnte

...
<pre>
<!-- hier Textx einfügen -->
</pre>
...

wäre das Problem möglicherweise schon gelöst.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

Javascript kann AFAIK _keine_ Dateien von der lokalen Platte / Stick lesen.

Gruß, noisefloor

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Ich würde auf eine 1:1-Abbildung verzichten und mit Hilfe von Pygments alle Scripte in HTML umwandeln. Anstelle der Original-Scripte bindest Du dann die konvertierten ein. Bei einer Änderung musst Du den Highlighter eben noch einmal aufrufen. Dafür kannst Du ja aber ein kleines Script schreiben, welches stumpf alle Script-Dateien umwandelt. Selbst bei einigen hundert sollte das fix genug gehen 😉

Dakuan

(Themenstarter)
Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6509

Wohnort: Hamburg

Javascript kann AFAIK _keine_ Dateien von der lokalen Platte / Stick lesen.

Direkt nicht, ich hatte aber gedacht das es vielleicht geht, wenn die URL über Javascript geöffnet wird. Aber das geht dann auch erst durch den Browser und erzeugt die bekannten Probleme. Und für Ajax braucht man dann wieder einen Server, der das alleine aber besser kann.

@Lysander Syntax Highlighting brauche ich eigentlich nicht, aber falls Syntax mal mein Thema ist, werde ich gerna darauf zurückgreifen.

Ich habe jetzt gerade mal ein 40 Zeilen Script für die Konvertierung geschrieben und experimentiere gerade damit herum.

Jetzt stellt sich aber noch die Froge, ob man für sowas <object> oder <iframe> nimmt. Vom Aussehen ist beides identisch.

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Dakuan schrieb:

@Lysander Syntax Highlighting brauche ich eigentlich nicht, aber falls Syntax mal mein Thema ist, werde ich gerna darauf zurückgreifen.

Pygments wandelt aber Quellcode ja in HTML um! Ob Du die Tags dann per CSS heighlightest oder nicht, ist in Deinem Falle tatsächlich Bonus. Damit ersparst Du Dir Ärger mit Sonderzeichen.

Dakuan

(Themenstarter)
Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6509

Wohnort: Hamburg

Damit ersparst Du Dir Ärger mit Sonderzeichen.

Womit wir wieder beim Ausgangsproblem wären 😉 Aber da reicht dann auch ein minimaler HTML Header mit

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Eigentlich reicht dann auch ein Einzeiler wie

cat header.txt script.sh trailer.txt >output.html

Bisher sieht das alles gut aus. Ich erkenne aber gerade, dass sich bei der Dokumentation der Scripte für meine Server schon früher Fehler eingeschlichen haben. Ich habe also noch einiges zu tun.

stfischr Team-Icon

Avatar von stfischr

Anmeldungsdatum:
1. März 2007

Beiträge: 19197

Peace.

Dakuan schrieb:

cat header.txt script.sh trailer.txt >output.html

Und du nutzt in deinem Quellcode kein < oder > oder " oder ... die zerhacken dir dann nämlich deine HTML-Seite.

ps: Ich verstehe einfach nicht, wieso du dich so gegen fertige, getestete Lösungen sträubst, die nebenbei einfacher und schneller zu realisieren wären.

Dakuan

(Themenstarter)
Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6509

Wohnort: Hamburg

Ich sträube mich nicht gegen fertige Lösungen. Ich bin nur bestrebt alles so einfach und Übersichtlich wie möglich zu halten. Ist vielleicht ein nerviger Tick von mir, aber ich denke nachlegen kann man bei Bedarf immer noch.

Bei den Scripten handelt es sich übrigens Scripte für Grub, die sich komplett innerhalb <pre></pre> Tags befinden. Und ich finde es praktisch, wenn man benötigte Teile davon direkt vom Browserfenster in die SSH Sitzung mit nano einfügen kann. Ich will damit keinen Layoutwettbewerb gewinnen, sondern nur bequem arbeiten. Die Rechner mit denen ich rumspiele sind übrigens headless und ich komme da nur über SSH ran.

cornix Team-Icon

Avatar von cornix

Anmeldungsdatum:
9. März 2007

Beiträge: 4763

Wohnort: Ringenberg

Dakuan schrieb:

Aber da reicht dann auch ein minimaler HTML Header mit

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Entweder stehe ich völlig auf dem Schlauch und habe das Problem nicht verstanden – oder Du hast die Lösung genannt.

edit: wobei natürlich der Vorschlag von Lysander much more sexy ist. 😀

Gruß, cornix

Dakuan

(Themenstarter)
Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6509

Wohnort: Hamburg

Entweder stehe ich völlig auf dem Schlauch und habe das Problem nicht verstanden – oder Du hast die Lösung genannt.

Das sollte eigentlich die ergoogelte Lösung sein, jedoch hat die Webseite, wo ich das gefunden hatte (irgendwo auf Trefferseite 5+), auch erwähnt, das keiner der mainstream Browser sich danach richtet.

Offenbar ist es so, dass alle per <iframe> oder <object> eingefügten Dateien immer die Zeichencodierung US-ASCII verwenden, egal was charset="?" sagt. Zumindest bei Firefox scheint die einzige Möglichkeit das zu überschreiben zu sein, wenn es sich um eine HTML Datei mit entsprechenden Meta-Tags handelt. Ein text/plain defaults alwasy to US-ASCII 😉 Da man Objektdaten offenbar auch einer anderen Anwendung (Video/Audio) übergeben kann, hatte ich die Hoffnung das man über diesen Weg mit Javascipt etwas tricksen kann.

... wobei natürlich der Vorschlag von Lysander much more sexy ist

Da stimme ich grundsätzlich zu, aber es bedeutet mehr Arbeit und es ist bei jeder Aktualisierung jedesmal ein zusätzlicher Punkt auf meiner To-Do Liste. Leider bin ich recht vergesslich und manche Scrite müssen länger als ein Jahr nicht aktualisiert werden. Da schleichen sich dann leicht Fehler ein wenn man eine notwendige Konvertierung vergisst. Zum Automatisieren bräuchte ich dann einen Server, was dann aber die Verwendung eines USB-Sticks bei mobilem Einsatz ausschliesst.

Vorschlag: Es sollte für HTML Dokumente einen enfachen include Befehl geben.

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Dakuan schrieb:

Da stimme ich grundsätzlich zu, aber es bedeutet mehr Arbeit und es ist bei jeder Aktualisierung jedesmal ein zusätzlicher Punkt auf meiner To-Do Liste. Leider bin ich recht vergesslich und manche Scrite müssen länger als ein Jahr nicht aktualisiert werden. Da schleichen sich dann leicht Fehler ein wenn man eine notwendige Konvertierung vergisst.

Daher solltest Du Dir einfach ein Script basteln, welches stumpf alle (oder durch Regeln definierbare) Scripte umwandelt und entsprechend in einen Zielordner kopiert. Damit vergisst Du nie etwas. Ich habe das bei meiner Diplomarbeit für die Umwandlung von Graphviz-Dateien in EPS ebenso gehandhabt.

Zum Automatisieren bräuchte ich dann einen Server, was dann aber die Verwendung eines USB-Sticks bei mobilem Einsatz ausschliesst.

Naja, mit ein wenig Aufwand könnte man da auch ein lokales Python drauf packen oder aber zumindest pygments und dann das Script auch vom Stick aus starten können. Ohne die Wandlung des Codes in HTML kommst Du imho eh nicht wirklich weiter...

Antworten |