Zeichencodierung - Text im Bild  (Gelesen 261 mal)

Offline joachimF

    • Wetterstation der Provence
    • Männlich
  • Registriert:
    18.03.2007, 21:29:01
  • Beiträge: 238
  • Ort:
    F 83570 Carces - Provence
  • Station:
    Davis Vantage Pro2
Zeichencodierung - Text im Bild
am: 27.06.2020, 18:33:04
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

Wetterstationen.info Forum

Zeichencodierung - Text im Bild
« am: 27.06.2020, 18:33:04 »

Online wneudeck

  • Administrator
    • Werner Neudecks Wetterpage
    • Männlich
  • Registriert:
    19.04.2002, 02:00:00
  • Beiträge: 13.303
  • Ort:
    Donauwörth
  • Station:
    Davis Vantage Pro 2
Re: Zeichencodierung - Text im Bild
Antwort #1 am: 27.06.2020, 19:51:50
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.

Offline joachimF

    • Wetterstation der Provence
    • Männlich
  • Registriert:
    18.03.2007, 21:29:01
  • Beiträge: 238
  • Ort:
    F 83570 Carces - Provence
  • Station:
    Davis Vantage Pro2
Re: Zeichencodierung - Text im Bild
Antwort #2 am: 27.06.2020, 20:39:20
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.

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

Online wneudeck

  • Administrator
    • Werner Neudecks Wetterpage
    • Männlich
  • Registriert:
    19.04.2002, 02:00:00
  • Beiträge: 13.303
  • Ort:
    Donauwörth
  • Station:
    Davis Vantage Pro 2
Re: Zeichencodierung - Text im Bild
Antwort #3 am: 28.06.2020, 09:35:03
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.

Offline joachimF

    • Wetterstation der Provence
    • Männlich
  • Registriert:
    18.03.2007, 21:29:01
  • Beiträge: 238
  • Ort:
    F 83570 Carces - Provence
  • Station:
    Davis Vantage Pro2
Re: Zeichencodierung - Text im Bild [gelöst]
Antwort #4 am: 28.06.2020, 16:06:42
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

Wetterstationen.info Forum

Re: Zeichencodierung - Text im Bild [gelöst]
« Antwort #4 am: 28.06.2020, 16:06:42 »