Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision a1b5f9b6

Von Moritz Bunkus vor fast 17 Jahren hinzugefügt

  • ID a1b5f9b607ed0f812f648e15d9b18946ee747c7f
  • Vorgänger c9860c6f
  • Nachfolger 4bdb80f4

Das XUL/XML-Menü muss auch bei Verwendung von UTF-8 als Zeichensatz richtig codiert werden.

Unterschiede anzeigen:

bin/mozilla/menuXML.pl
# end of main
sub display {
print $form->create_http_response('content_type' => 'text/xml',
'charset' => 'iso-8859-1');
print qq|<?xml version="1.0" encoding="iso-8859-1"?>\n|;
print qq|<?xml-stylesheet href="xslt/xulmenu.xsl" type="text/xsl"?>\n|;
print qq|<!DOCTYPE doc [
<!ENTITY szlig "?">
<!ENTITY auml "?">
<!ENTITY uuml "?">
<!ENTITY ouml "?">
]>|;
print qq|<doc>|;
print qq|<name>|;
print %myconfig->{name};
print qq|</name>|;
print qq|<db>|;
print %myconfig->{dbname};
print qq|</db>|;
print qq|<favorites>|;
my $fav=%myconfig->{favorites};
my @favorites = split(/;/, $fav);
$locale = Locale->new($language, "menu");
my $charset = $dbcharset || 'ISO-8859-1';
my $text = $form->create_http_response('content_type' => 'text/xml',
'charset' => $charset)
. qq|<?xml version="1.0" encoding="${charset}"?>
<?xml-stylesheet href="xslt/xulmenu.xsl" type="text/xsl"?>
<!DOCTYPE doc [
<!ENTITY szlig "| . $locale->{iconv_iso8859}->convert('?') . qq|">
<!ENTITY auml "| . $locale->{iconv_iso8859}->convert('?') . qq|">
<!ENTITY uuml "| . $locale->{iconv_iso8859}->convert('?') . qq|">
<!ENTITY ouml "| . $locale->{iconv_iso8859}->convert('?') . qq|">
]>
<doc>
<name>$myconfig{name}</name>
<db>$myconfig{dbname}</db>
<favorites>|;
my $fav = $myconfig{favorites};
my @favorites = split m/;/, $fav;
foreach (@favorites) {
print qq|<link name="$_"/>|;
$text .= qq|<link name="$_"/>|;
}
print qq|</favorites>|;
print qq|<menu>|;
my $isoencodedmenu=&acc_menu($menu);
print encode("iso-8859-1",$isoencodedmenu );
print qq|</menu>|;
print qq|</doc>|;
$text .= qq|</favorites>\n|
. qq|<menu>\n|
. acc_menu()
. qq|</menu>\n|
. qq|</doc>\n|;
print $text;
$main::lxdebug->message(0, "text $text");
}
sub acc_menu {
$locale = Locale->new($language, "menu");
$mainlevel = $form->{level};
$mainlevel =~ s/$mainlevel--//g;
my $menu = new Menu "$menufile";

Auch abrufbar als: Unified diff