Forum: PC Hard- und Software doxygen und umlaute


von Sven W. (woehlb)


Lesenswert?

Bin gerade dabei mein erstes Projekt mit doxygen zu dokumentieren. 
Leider werden die Umlaute in der HTML-Doku nicht richtig dargestellt.

Wenn ich die übliche HTML-Umschreibung für die Umlaute schon im 
Quelltext benutze, geht alles klar (siehe Link).

http://de.selfhtml.org/html/allgemein/zeichen.htm#umlaute

Das Dumme ist nur, daß dadurch die Kommentare im Quelltext recht 
unleserlich werden. Das würde ich gern vermeiden. Kann man doxygen 
irgendwie so konfigurieren, daß es die Umlaute für HTML automatisch 
richtig generiert?

: Verschoben durch Moderator
von ... .. (docean) Benutzerseite


Lesenswert?

http://www.stack.nl/~dimitri/doxygen/config.html#cfg_doxyfile_encoding
im Wizard unter Expert

auf deine Format anpassen dann klappt auch mit dem Nachbarn

aus Selfhtml:
Wenn Sie Kodierungen wie ISO 8859-1 oder UTF-8 verwenden, können Sie die 
deutschen Umlaute direkt in Ihrem Editor eintippen.

Das gilt auch für dich. IS0 8859-15 sollte passen

von Sven W. (woehlb)


Lesenswert?

Es funktioniert leider nicht, es erscheint nach wie vor immer nur ein 
Fragezeichen. Muß ich eventuell noch irgendein Paket installieren?

Ich benutze doxygen 1.6.3.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Was hast du denn in deinem doxygen.conf stehen?  avr-libc hat zum
Beispiel gleich als erstes:

DOXYFILE_ENCODING      = iso-8859-1

Intern wandelt Dxoygen mittlerweile alles in UTF-8 um, bevor es
das dann ggf. für die Ausgabe in die einzelnen Formate konvertiert.

von Sven W. (woehlb)


Lesenswert?

DOXYFILE_ENCODING      = iso-8859-1

Steht auch bei mir in der doxygen.conf.

von Sven W. (woehlb)


Lesenswert?

Mein Betriebssystem ist immer noch Windows XP.

von Sven W. (woehlb)


Lesenswert?

Muß ich eventuell noch einen HTML-Header definieren, der angibt welche 
Kodierung in der HTML-Seite verwendet wird? Wenn ja, wie muß der 
aussehen?

von Sven W. (woehlb)


Lesenswert?

Ich habe unter doxygen jetzt den folgenden Header eingebunden.

<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>

Außerdem ist gilt: DOXYFILE_ENCODING = iso-8859-1

Doxygen erzeugt HTML Seiten mit Frames. In der eigentlich Ansicht rechts 
werdne die Umlaute jetzt angezeigt, aber nicht in der Fußzeile. Auch im 
Menü links werden die Umlaute noch nicht angezeigt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Sven Woehlbier schrieb:
> Ich habe unter doxygen jetzt den folgenden Header eingebunden.
>
> <head>
> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
> </head>

Der ist überflüssig.  ISO 8859-1 ist das default encoding einer
HTML-Seite.  Encoding per meta http-equiv ist sowieso bäh, weil es
vom Browser erwartet, dass er die Seite nach dem Erhalt nochmal
neu rendert.  Besser ist es, den Webserver so zu konfigurieren, dass
er das passende Encoding in den HTML-Headers rausgibt.

Wo dein Problem aber genau liegt, wenn du das im doxyfile korrekt
hast, kann ich dir auch nicht sagen.  Hast du dir denn das HTML
selbst mal angeguckt, ob es korrekt ist?  Nicht, dass nur dein
Browser spinnt.

von Sven W. (woehlb)


Lesenswert?

Ich habe jetzt die Lösung. Der Header ist wirklich überflüssig.
Aber es müssen die folgenden BEIDEN Einstellungen vorgenommen werden.

Expert->Project->DOXYFILE_ENCODING = iso-8859-1
Expert->Input->INPUT_ENCODING = iso-8859-1

Damit werden die Umlaute zumindest bei mir jetzt korrekt angezeigt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ich hätte in meinem doxyfile weiterlesen sollen. ;-)

von ... .. (docean) Benutzerseite


Lesenswert?

logisch wenn du iso8859... reingibst dixygen utf-8 erwartet gehts 
natürlich schief...

von VS2012-Mik (Gast)


Lesenswert?

Expert->Input-> INPUT_ENCODING = iso-8859-1 reicht völlig aus.

Die Ausgabe (DOXYFILE_ENCODING) kann auf UTF-8 bleiben.

VisualStudio 2010 nimmt standardmäßig übrigens CP1252 - das 
funktioniert also auch

von Rolf Magnus (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> Encoding per meta http-equiv ist sowieso bäh, weil es
> vom Browser erwartet, dass er die Seite nach dem Erhalt nochmal
> neu rendert.

Warum? Das steht doch im Header drin, den er schon hat, wenn er mit dem 
Rendern anfängt.

> Besser ist es, den Webserver so zu konfigurieren, dass er das passende
> Encoding in den HTML-Headers rausgibt.

Wie: "Webserver"? Doxygen-generierte Doku wird recht häufig lokal 
benutzt.

von Daniel F. (df311)


Lesenswert?

VS2012-Mik schrieb:
> VisualStudio 2010 nimmt standardmäßig übrigens CP1252 - das
> funktioniert also auch

das gibts immer noch?
warum verwenden die nicht wie (fast der ganze) rest der welt einfach 
utf-8 oder -16?

von Andreas (Gast)


Lesenswert?

Danke für die Bekanntgabe der erfolgreichen Maßnahme.
Das Setzen der beiden Variablen auf den Wert "iso-8859-1" hat bei mir 
auch gegriffen.

von Martin (Gast)


Lesenswert?

Lösung:

1) Expert->Input->Input_Encoding = ISO-8859-1

2) Expert->Project->Doxyfile_Encoding = UTF-8

Besten Dank für die Infos, so hat es bei mir funktioniert.

Input-Encoding steht für die Codierung der Eingabe-Dateien hier also die 
Source-Files in *.c die wir programmieren.

Das Doxyfile-Encoding müsste also nur geändert werden wenn z.B. Umlaute 
im dogygen config-file stehen würden.

Im Firefox-Browser war ISO-8859-1 eingestellt.

doxygen v_1.8.8, Win-Xp, AVR-Studio
Gruß, Martin

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.