• Willkommen im Forum „Wetterstationsforum.info - Archiv“.
 

Neuigkeiten:

Dieses Forum dient ausschließlich zu Archivzwecken.
Für Fragen nutze bitte unser aktuelles Forum, welches du unter https://wetterstationsforum.info findest.

Hauptmenü

Zeichencodierung - Text im Bild

Begonnen von joachimF, 27.06.2020, 18:33:04

⏪ vorheriges - nächstes ⏩

joachimF

Hallo,

WsWin erzeugt mir einen Text mit der aktuellen Wetterinformation (ws_webcam.txt)

Temperatur 30.1 °C
Feuchte 52 %
Wind 1.1 km/h
Barometer 1014.6 hPa
Regen 0.0 mm
Regenrate 0.0 mm/h

Diese Textdatei lese ich zeilenweise aus und speicher den Inhalt in einer Variablen ab und DAS sieht so aus :



und im Bild :



Wie bekomme ich das Gradzeichen korrekt angezeigt?

Danke für die Hilfe


Gruß
Joachim

--
43° 23" - 6° 10"  - 150 ü NN
https://puttkammer.de

wneudeck

Hallo,
ich kann den Vorgang nicht komplett nachvollziehen, aber das Gradzeichen ist ja ein Sonderzeichen. Also wird wohl der gewählte Zeichensatz nicht passend sein.
Ich nehme an, dass Du in WSWIN vermutlich iso-8859-1 eingestellt hast, was ja funktionieren sollte. Die Frage ist also was danach passiert.

joachimF

Zitat von: wneudeck am 27.06.2020, 19:51:50
Ich nehme an, dass Du in WSWIN vermutlich iso-8859-1 eingestellt hast
Kann ich nicht einmal beantworten, denn ich kann mich nicht erinnern, irgendwann 'iso-xyz' eingestellt zu haben.

Zitat von: wneudeck am 27.06.2020, 19:51:50
Die Frage ist also was danach passiert.
Ich lasse ein Script starten 'bildneutext.bat' starten:
@echo off &setlocal
REM  ws_webcam.txt zeilenweise auslesen und jeweils einer Variablen zuordnen

for /f "tokens=1,* delims=:" %%a in ('findstr /n . "c:\Wswin\html\ws_webcam.txt"') DO @(
set "zeile%%a=%%b"
)
REM Ausgabe von Zeile 3 - 8 (Zeile 1 und 2 sind Leerzeilen)

echo %zeile3%
echo %zeile4%
echo %zeile5%
echo %zeile6%
echo %zeile7%
echo %zeile8%

...usw.

das Grad Sonderzeichen wird hier falsch ausgegeben.

Alles auf einen Win7 PC und auch da ist mir der eingestellte Zeichsatz nicht bekannt.

Vielleicht hilft es weiter
Gruß
Joachim

--
43° 23" - 6° 10"  - 150 ü NN
https://puttkammer.de

wneudeck

Halo Joachim,
wenn ich Dich richtig verstanden habe, dann erzeugt WSWIN ja aus einer benutzerdefinierten Datei zunächst einmal die Daten, so wie ganz oben dargestellt. Und da dort das Gradzeichen vorhanden ist ( Temperatur 30.1 °C
Feuchte 52 %)
sollte in WSWIN der richtige Zeichensatz eingestellt sein. Der Fehler beginnt also bei der Bilddarstellung. Du musst Dir darüber im Klaren sein, dass eine Zeichensatzcodierung der Datei, die ausgegegeben wird (also Dein Bild) nichts mit Windows selbst zu tun hat, sondern bei der Übernahme der Zeichen ins Bild erfolgt. Und da kann ich nicht mitreden, weil ich nicht weiß, wie das bei Dir verläuft, Schau aber vielleicht mal in den Quelltext der Bilddatei, wenn da überhaupt etwas zu sehen ist. Ich vermute, der Fehlker liegt in der Datei "13.bat"
In einer "normalen" Datei fürs Internet ist da im Quelltext eine Angabe wie
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
vorhanden, denn damit wird der verwendete Zeichensatz angegeben.
Es wäre aber gut, wenn sich ein echter Fachmann auf diesem Gebiet hier noch melden würde, denn ich gehe, wie gesagt, davon aus, dass der Fehler bei der Übernahme ins Bild geschieht.

joachimF

Die Lösung habe ich hier gefunden :
https://it-stack.de/15/10/2013/copyright-symbol-und-umlaute-in-batch-konsolen-ausgabe-darstellen/

und dann die bat-Datei wie folgt gändert :
@echo off &setlocal
for /f "tokens=2 delims=:." %%x in ('chcp') do set cp=%%x
chcp 1252


REM  ws_webcam.txt zeilenweise auslesen und jeweils einer Variablen zuordnen

for /f "tokens=1,* delims=:" %%a in ('findstr /n . "c:\Wswin\html\ws_webcam.txt"') DO @(
set "zeile%%a=%%b"
)
REM Ausgabe von Zeile 3 - 8 (Zeile 1 und 2 sind Leerzeilen)
chcp %cp%
echo %zeile3%
echo %zeile4%

Das Grad Sonderzeichen wird nun richtig angezeigt und auch so ins Bild geschrieben.

Werner, danke für die Kommentierung.
Gruß
Joachim

--
43° 23" - 6° 10"  - 150 ü NN
https://puttkammer.de