Zeichensatz- und Umlautebehandlung in tin
=========================================

Umlaute beim Lesen
------------------

Nachdem ein Posting vom Newsserver geladen wurde, prft tin, ob im Header
ein Zeichensatz deklariert wurde. Falls nicht, wird der (gerade passende)
Wert aus der attributes-Datei fr undeclared_charset angenommen, wenn es den
auch nicht gibt, nimmt tin US-ASCII an.

Anschlieend wird das Posting in den lokalen Zeichensatz konvertiert. Dieser
Zeichensatz ist im Locale angegeben, den Du normalerweise mittels
Umgebungsvariablen setzt (LANG, LC_*). Sollte das Posting Zeichen enthalten,
die im Header angegebenen bzw. durch tin angenommenen Zeichensatz nicht
vorkommen (z. B. 8-Bit-Zeichen bei US-ASCII- oder fehlender Deklaration),
werden sie durch Fragezeichen ersetzt. Enthlt das Posting Zeichen, die im
lokalen Zeichensatz nicht vorkommen (z. B. Euro-Zeichen in einer
ISO-8859-1-Umgebung), werden diese ebenfalls durch Fragezeichen ersetzt. Das
so konvertierte Posting wird dann angezeigt.


Umlaute beim Schreiben
----------------------

Solltest Du auf die Idee kommen, auf ein Posting antworten, wird das wie
oben beschrieben konvertierte Posting an den Editor bergeben. Der sollte
dann natrlich auch mit dem lokalen Zeichensatz umgehen knnen (joe hat zum
Beispiel Probleme mit UTF-8, den sollte man dann nicht nehmen). Dort
bearbeitest Du dann Deine Antwort ganz normal und beendest den Editor
wieder, um zu tin zurckzugelangen.

Wenn Du die Antwort verschickst, schaut tin nach, in welchem Zeichensatz Du
das tun mchtest: Entweder hast Du das in der attributes-Datei fr die
jeweilige Gruppe (oder mehrere davon) oder global in der tinrc-Datei in
mm_network_charset festgelegt. Letzteres geht auch ber das Men: der Punkt
heit MM_NETWORK_CHARSET. Tin konvertiert dann das Posting oder die Mail vom
lokalen Zeichensatz in den angegebenen Zeichensatz um. Auch hier kann es
dann passieren, da Du lokal Zeichen verwendet hast, die im Zielzeichensatz
nicht verfgbar sind. Wie schon beim Anzeigen werden dann solche Zeichen in
Fragezeichen umgewandelt. In diesem Fall gibt tin auerdem eine Warnung aus,
so da Du vor dem Posten noch korrigierend eingreifen kannst.


Wenn die Fragezeichen nerven
----------------------------

Als erstes solltest Du sicherstellen, da tin auch wei, welchen lokalen
Zeichensatz Du zur Anzeige verwendest. Tin fragt dazu die "locales" ab. Gib
in der Kommandozeile einfach mal den Befehl `locale` ein, alternativ `echo
$LANG, $LC_CTYPE`. Herauskommen sollte etwas wie "de_DE.ISO-8859-1", also ein
Sprachencode (hier de) gefolgt von einem Unterstrich, einem Lndercode (hier
DE) gefolgt von einem Punkt und ein Zeichensatz (hier ISO-8859-1).

Ist das nicht der Fall, solltest Du entweder LANG oder LC_CTYPE auf einen
fr Dich passenden Wert stellen. Diesen Wert kannst Du wie oben beschrieben
zusammensetzen. In der franzsischsprachigen Schweiz und in einem Terminal,
das UTF-8 darstellt, wrdest Du in der bash und in der ksh zum Beispiel den
Befehl `LC_CTYPE=fr_CH.UTF-8; export LC_CTYPE` verwenden; in der (t)csh
lautet er `setenv LC_CTYPE fr_CH.UTF-8`.

Im nchsten Schritt solltest Du in der attributes-Datei (im
.tin-Verzeichnis) einen Zeichensatz einstellen, der angenommen wird, wenn im
Posting keiner angegeben ist. Zum Beispiel so:

scope=*
undeclared_charset=Windows-1252

Damit legst Du fr alle Newsgruppen fest, da als Zeichensatz Windows-1252
angenommen werden soll. Da die meisten Leute unter Windows arbeiten drften
und fr Nordamerika sowie Westeuropa unter Window dieser Zeichensatz
voreingestellt ist, und dieser Zeichensatz im wesentlichen kompatibel zum
weit verbreiteten ISO-8859-1-Satz ist, ist das eine recht gute Nherung. Fr
spezielle Newsgruppen solltest Du das ggf. in einem weiteren Eintrag ndern.
So ist zum Beispiel u.a. in der Hierarchie pl.* der Zeichensatz ISO 8859-2
blich:

scope=pl.*,cz.*,hin.*,sk.*,hr.*
undeclared_charset=ISO-8859-2

Insbesondere in Fernost drften hier noch andere Einstellungen notwendig
sein, beispielsweise so:

scope=chinese.*,alt.chinese.text.big5,tw.*
undeclared_charset=Big5

scope=fj.*,jp.*,japan.*
undeclared_charset=ISO-2022-JP

Sollten auch diese Einstellungen zu keinem Erfolg fhren, sind die Locales
des Systems entweder nicht vorhanden oder kaputt. Zumindest in ersterem Fall
wre es angebracht, ein entsprechendes Paket zu installieren (oder
installieren zu lassen). Libiconv von Bruno Haible wre da eine sinnvolle
Wahl.

Wenn auch das nicht mglich ist, bleibt als allerletzte Mglichkeit nur, tin
neu zu compilieren. Dazu vorher `make distclean` und configure zustzlich zu
den normalen Optionen mit --disable-locale aufrufen. In diesem Fall geht tin
grundstzlich davon aus, da die Postings im lokalen Zeichensatz zu
interpretieren sind. Hinweis: Das kann schon mal dazu fhren, da das
Terminal nur noch "komische" Zeichen ausgibt oder die Zeichen nicht da
ausgegeben werden, wo sie hinsollen.
