Schrift
[thread]6436[/thread]

Probleme mit chr(0x80): bei der Erzeugung von PDF

Leser: 2


<< >> 8 Einträge, 1 Seite
mordur
 2004-07-27 19:42
#85019 #85019
User since
2003-09-25
182 Artikel
BenutzerIn
[Homepage] [default_avatar]
moins,

ich will mittels PDF-Modul PDF::Report/PDF::API2
ein Eurozeichen darstellen.
mit
Code: (dl )
$pdf->addText ("zzgl. Pfand 3".chr(0x80));

klappt das bestens.
Doch wenn ich folgendes mache:
Code: (dl )
1
2
my $waehrung=chr(0x80);
$pdf->addText ("zzgl. Pfand 3".$waehrung);

bekomme ich folgende blöde Ausgabe:
Quote
zzgl. Pfand 3 &Acirc;&#x80;

...naja jedenfalls die entsprechenden Zeichen für den HTML-code...
wieso dieses? warum stehen in $waehrung aufeinmal zwei Zeichen? ich brauch unbedingt die zweite Variante!

gruß mordur
Ishka
 2004-07-27 19:45
#85020 #85020
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Schaut sehr seltsam aus. Machst du irgendwas mit Unicode?
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
ptk
 2004-07-27 20:06
#85021 #85021
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
0x80 fuer Euro sieht auch falsch aus, das sollte (nach Unicode) doch eher 0x20ac sein?
Ishka
 2004-07-27 20:12
#85022 #85022
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Euro ist auch im regulären Schriftsatz drin - muß nicht notwendigerweise Unicode sein. Das hatte ich ja nur gefragt, ob er Unicode verwendet.

Ich erinnere mich auf jeden Fall, daß das mit Durchsetzen des Eurosymbols ein ziemliches Chaos damals war ;)
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
mordur
 2004-07-27 21:42
#85023 #85023
User since
2003-09-25
182 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=Ishka,27.07.2004, 17:45]Schaut sehr seltsam aus. Machst du irgendwas mit Unicode?[/quote]
was kann ich denn damit machen ? ?
nö, also nicht bewusst.
Standardinstallation von Pel 5.6 auf Linux Suse7.3
und wie gesagt, übergebe ich chr(0x80) direkt in die Funktion des PDF-Modulls gehts ja. Nur wenn ich es in einer Variable zwischenspeicher wird da dieses komische A mit dem Hut drauf vorangesetzt und zwar sogar irgendwie so, das ich es nicht mal mit Regex wegzaubern kann. Dann sind dieses A und das Eurozeichen so, als ob sie ein Zeichen wären . ??? :-(
ptk
 2004-07-27 21:42
#85024 #85024
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Was heisst "regulaerer Zeichensatz"? Sowohl in iso-8859-1 als auc h in Unicode ist 0x80 kein druckbares Zeichen. Wahrscheinlich beziehst du dich auf windows-12sonstwas?

Zum eigentlichen Problem: benutzt du vielleicht perl5.8.0 und die LANG-Environment-Variable ist auf etwas mit utf8 gesetzt?
Ishka
 2004-07-27 21:58
#85025 #85025
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
ich meinte damit, daß von EU-Seite her das Eurozeichen auf irgendein Zeichen in den Zeichensätzen festgelegt wurde und auch in einige Schriftsätze (frag mich nicht welche) übernommen wurde. Das heißt allerdings nicht, daß ich mich auf 0x80 beziehe - ich weiß nicht mehr welches es war.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
Ishka
 2004-07-27 22:01
#85026 #85026
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=mordur,27.07.2004, 19:42][quote=Ishka,27.07.2004, 17:45]Schaut sehr seltsam aus. Machst du irgendwas mit Unicode?[/quote]
was kann ich denn damit machen ? ?
[...][/quote]
man kann perl mit unicode-unterstützung starten. Dann werden Unicode-Zeichen wie ein einziges behandelt, auch wenn sie mehrere Byte lang sind.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
<< >> 8 Einträge, 1 Seite



View all threads created 2004-07-27 19:42.