/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Perl roter til Ikke-ASCII tegn...
Fra : Joakim Knudsen


Dato : 18-11-01 15:48

Hei alle!

Jeg jobber med et Perl script som oppretter PDF filer on-the-fly.
Jeg bruker modulen PDF::Create, og alt er fint, bortsett fra når jeg skal
legge til en streng som inneholder norske tegn. De norske tegnene blir
helt feil, f.eks. 'å' -> 'Â' osv.

PDF::Create legger til en tekststreng til et PDF dokument med følgende kommando:

$page->stringl($f2, 18, 350, 200.00, 'Heisann du!');
$page->stringl($f2, 18, 350, 113.92, 'æøåÆØÅ');

Den første fungerer helt fint, men den andre blir rar p.g.a. ikke-ASCII tegnene.

Er det Perl som roter til bokstavene, eller er det denne modulen? Jeg tror
det problemet ligger "før" modulen settes inn; altså at Perl ikke
håndterer de norske tegnene. Er det noen måte å "beskytte" tegnene, slik
at de dukker opp riktig i PDF filen?

Mvh, Joakim Knudsen
joakim.knudsen@spray.no

 
 
Peter Makholm (19-11-2001)
Kommentar
Fra : Peter Makholm


Dato : 19-11-01 07:39

joakim.knudsen@spray.no (Joakim Knudsen) writes:

> legge til en streng som inneholder norske tegn. De norske tegnene blir
> helt feil, f.eks. 'å' -> 'Â' osv.

Kunne man tænke at den forsøger at lave dem om til utf8?

Prøv at smide dine strenge gennem Unicode::String::latin1($tekst)->utf8
før du giver dem til PDF-modulet, eller læs om manualen siger noget om
utf8.

--
Når folk spørger mig, om jeg er nørd, bliver jeg altid ilde til mode
og svarer lidt undskyldende: "Nej, jeg bruger RedHat".
-- Allan Olesen på dk.edb.system.unix

Lasse Hillerøe Peter~ (19-11-2001)
Kommentar
Fra : Lasse Hillerøe Peter~


Dato : 19-11-01 22:39

In article <87snbbp8nf.fsf@xyzzy.adsl.dk>, Peter Makholm
<peter@makholm.net> wrote:

>joakim.knudsen@spray.no (Joakim Knudsen) writes:
>
>> legge til en streng som inneholder norske tegn. De norske tegnene blir
>> helt feil, f.eks. 'å' -> 'Â' osv.
>
>Kunne man tænke at den forsøger at lave dem om til utf8?

At dømme efter msg-id
<joakim.knudsen-1811011548160001@mac-130-25.svf.uib.no> sidder Joakim på
en Mac.

Jeg oplever selv ofte med Eudora (Mac mail klient - jeg bruger en
oldgammel udgave) at mail uden MIME-charset angivelse bliver vist med
Mac-tegnsæt, hvorved "å" bliver vist som "Â". Tegn 229 i Latin1 er "å", og
tegn 229 i Mac-tegnsættet er "Â". Det er man nødt til at kompensere
(konvertere) for.

-Lasse

Joakim Knudsen (21-11-2001)
Kommentar
Fra : Joakim Knudsen


Dato : 21-11-01 21:51

Hei, og takk for svar!

Ja, jeg jobber ved en Mac.

Men jeg forstår ikke hvordan platformen min (Mac) kan ha innvirkning på
Perl programmet, som kjører på en annen maskin (server). Hvis jeg sender
data til programmet (via QUERY_STRING eller HTML form) kan jeg forstå at
min Mac roter til bokstavene ved å bruke et annet tegnsett enn "standard"
ASCII.
Men, hvis jeg, via Telnet/SSH logger meg på serveren, og hard-koder inn
følgende lille Perl program:

#!/usr/bin/perl

print "å";

Fortsatt blir resultatet "Â"...

Er det slik at denne "å"-en blir lagret som en "Â" idet jeg taster den inn
fra min Mac, selv om det går via SSH? Hvordan kan jeg unngå slike
problemer?

Mvh, Joakim




In article <lhp+news-1911012238510001@globemaster.toft-hp.dk>,
lhp+news@toft-hp.dk (Lasse Hillerøe Petersen) wrote:

> In article <87snbbp8nf.fsf@xyzzy.adsl.dk>, Peter Makholm
> <peter@makholm.net> wrote:
>
> >joakim.knudsen@spray.no (Joakim Knudsen) writes:
> >
> >> legge til en streng som inneholder norske tegn. De norske tegnene blir
> >> helt feil, f.eks. 'å' -> 'Â' osv.
> >
> >Kunne man tænke at den forsøger at lave dem om til utf8?
>
> At dømme efter msg-id
> <joakim.knudsen-1811011548160001@mac-130-25.svf.uib.no> sidder Joakim på
> en Mac.
>
> Jeg oplever selv ofte med Eudora (Mac mail klient - jeg bruger en
> oldgammel udgave) at mail uden MIME-charset angivelse bliver vist med
> Mac-tegnsæt, hvorved "å" bliver vist som "Â". Tegn 229 i Latin1 er "å", og
> tegn 229 i Mac-tegnsættet er "Â". Det er man nødt til at kompensere
> (konvertere) for.
>
> -Lasse

Lasse Hillerøe Peter~ (22-11-2001)
Kommentar
Fra : Lasse Hillerøe Peter~


Dato : 22-11-01 22:33

In article <joakim.knudsen-2111012151180001@mac-130-25.svf.uib.no>,
joakim.knudsen@spray.no (Joakim Knudsen) wrote:

>Men, hvis jeg, via Telnet/SSH logger meg på serveren, og hard-koder inn
>følgende lille Perl program:
>
>#!/usr/bin/perl
>
>print "å";
>
>Fortsatt blir resultatet "Â"...

Det er afgørende _hvor_ resultatet bliver Â.

>Er det slik at denne "å"-en blir lagret som en "Â" idet jeg taster den inn
>fra min Mac, selv om det går via SSH? Hvordan kan jeg unngå slike
>problemer?

Hvis din ssh-klient tillader dig at bruge 8bit-tegn, så bliver de
konverteret til Latin1. (Fx MacSSH.)

galaxy $ echo æøå|hexdump -C
00000000 e6 f8 e5 0a |....|
00000004

Så ja, det bliver lagret som e5 (hex). Hvis du viser dette på en Mac uden
at programmet der viser det ved at det er Latin1, bliver  resultatet.

Hvilket program ser du  i? En browser? Acrobat Reader?

Mit kendskab til PDF-formatet er ikke stort nok til at jeg ved om det
anvender Mac'ens tegnsæt på Mac'er med mindre andet er angivet, men det
ser ud som om det er det du oplever.

-Lasse
"Min kfphest har feet et fxl!"

Thorbjørn Ravn Ander~ (19-11-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 19-11-01 18:21

Joakim Knudsen wrote:

> Hei alle!
>
> Jeg jobber med et Perl script som oppretter PDF filer on-the-fly.
> Jeg bruker modulen PDF::Create, og alt er fint, bortsett fra når jeg skal
> legge til en streng som inneholder norske tegn. De norske tegnene blir
> helt feil, f.eks. 'å' -> 'Â' osv.

Hvor får du de norske tegn fra? En xml-fil?


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste