[Allegro] Kurztitelliste mit Chinesischen Schriftzeichen

Jennifer Gross jenny at sino.uni-heidelberg.de
Di Feb 28 13:08:48 CET 2006


Liebe Listenmitglieder,
ich habe ein Problem mit folgendem Programmcode der Unterfunktion 
ZeigKurztitel (stammt aus allegro.net, Version 2.5, angepasst für 
Sinologie Heidelberg):


( $SatzNummer, $KurzTitel ) = split( "Ê", $Z, 2 );


Der Code der gesamten Unterfunktion steht am Ende der Email.
Das Problem ist, dass die Ausgabe, die von Avanti an das Perl-Skript 
geliefert ist, durch das Sonderzeichen Ê gegliedert ist. Diese wird dann 
im obigen Code verwendet, um Satznummern von Kurztiteln zu separieren. 
Allerdings sind in unserer Datenbank chinesische Schriftzeichen, deren 
korrekte Darstellung im Internet nur dann funktioniert, wenn die ASCII 
-> ANSI Wandlung in der o.apt auskommentiert ist. Der obige Code aber 
funktioniert nur, wenn die Wandlung für Ê in der o.apt stattfindet. 
Dieses Sonderzeichen aber kommt natürlich auch in diversen chinesischen 
Schriftzeichen vor, die nun weder korrekt dargestellt werden, noch nach 
denen man suchen kann.

Meine zwei Fragen sind nun: Wo wird dieses Ê überhaupt als Trennzeichen 
in die Ausgabe der Satznummer/Kurztitel eingebaut? Meine eigenen 
Recherchen haben mich leider nicht weitergebracht? Wodurch kann man es 
sinnvoller Weise ersetzen?

Mit herzlichen Grüßen und ebensolchem Dank,
Jennifer Gross



-----------------------------------------------------------------
sub ZeigeKurztitel
{
#
# Ausgabe des Ergebnisses
#

# Navigationsknoepfe erzeugen
if( $multi == 1 )
{
&Knoepfe;
}

# die eigentliche Kurztitelliste
print <<"KurztitellisteAnfang";

</FORM>
<FORM NAME="titelliste" ACTION="$HTMLScriptPfad/regsrch.pl" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="db" VALUE="$in{'db'}">
<TABLE>
<TR><TD COLSPAN="2"><FONT SIZE="-1">
<input type="button" value="Check all" 
onClick="this.value=check(this.form)">
<INPUT TYPE="SUBMIT" VALUE="Show selected titles">
</FONT></TD></TR>

KurztitellisteAnfang

# Wenn wir die Mitte oder das Ende der Liste zeigen, gibt es zunaechst
# Fortsetzungspunkte
&PrintFortsetzung if( $Mitte == 0 || $Mitte == 1 );

# Ergebnis einlesen

if(! $Input)
{
# Downloaddatei ist zwar da, aber leer -> kein Ergebnis
&KeinErgebnis;
exit;
}
chop $Input;

# Die einzelnen Kurztitel mit Checkbox davor anzeigen lassen
local( $BoxNr ) = 0;

@InZeilen=split /^/m,$Input; # Eingabestring in Zeilen zerlegen

foreach $Z ( @InZeilen ) # Zeile verarbeiten
{
# ( $SatzNummer, $KurzTitel ) = split( "", $Z, 2 ); #J did not work 
after Linux crash, replaced by next line, JAG, 19.12.2005
( $SatzNummer, $KurzTitel ) = split( "Ê", $Z, 2 );
# $KurzTitel = &anz_prep( $KurzTitel );
# $KurzTitel =~ s/ / /g; # Damit spaeter die Tabellenartige
# Struktur der Eintraege erhalten bleibt

print <<"Kurztitel";
<TR><TD>
<INPUT TYPE="CHECKBOX" NAME="num$BoxNr" VALUE="$SatzNummer">
</TD>

<TD>
<TT><FONT FACE="arial unicode ms, arial">$KurzTitel</FONT></TT>
</TD>

</TR>

Kurztitel
$BoxNr++;
}

# Wenn wir die Mitte oder den Anfang der Liste zeigen, gibt es auch
# Fortsetzungspunkte
&PrintFortsetzung if( $Mitte == 0 || $Mitte == -1 );

# Ende des Formulars
# Die erste Spalte bleibt leer
print <<"KurztitellisteEnde";

<TR><TD COLSPAN="2"><FONT SIZE="-1">
<input type="button" value="Check all" 
onClick="this.value=check(this.form)">
<INPUT TYPE="SUBMIT" VALUE="Show selected titles">
</FONT></TD>
</TR>
</TABLE>
</FORM>
KurztitellisteEnde

# Nochmal Navigationsknoepfe erzeugen
if( $multi == 1 )
{
&Knoepfe;
}

}



Mehr Informationen über die Mailingliste Allegro