[PERL]Probleem met "rare" karakters

Pagina: 1
Acties:

  • Space_NL
  • Registratie: Januari 2002
  • Laatst online: 24-03-2025

Space_NL

ScoutLink DPC Team

Topicstarter
Ik ben voor een IRC netwerk een quizbot aan het veranderen, oa. heb ik de bot nu zo geschreven dat hij verschillende talen kan spreken door die zinnen uit files te halen in de map van die taal

( ./magnus dutch )

zorg ervoor dat hij "magnus" (de naam van de bot) opstart en dan met de config en taalfile uit de map /dutch/

Zover gaat alles perfect,

Alleen na een verzoek van een fins team om ook hun de bot te laten gebruiken kwam ik op problemen doordat in finland de ö en de ä gebruikt worden ..
En laat perl die nu niet standaard ondersteunen :(

ik zat op perl5.0030, nu op perl 5.8.0

ook heb ik wat geprobeerd met "use utf8;" en "no utf8;" alleen krijg ik het gewoon niet werkend ...

Is er iemand die een (tip richting de) oplossing weet ?

Ikzelf begin door de bomen het bos helaas niet meer te zien ..

Alvast bedankt!

SpacY

The Path of the least resistance will seldom lead u beyond your own doorstep


Verwijderd

Ik heb geen enkele ervaring met perl...
Maar als die rare karakters in een file staan en je leest die in een string, deze stuur je door een socket naar de IRC client, dan hoeft PERL er toch geen 'ondersteuning' voor te hebben.

Kun je misschien uileggen op welke wijze deze karakters niet ondersteunt worden.
Het is toch gewoon ASCII ???

Verwijderd

Verwijderd schreef op 03 augustus 2002 @ 00:51:
Ik heb geen enkele ervaring met perl...
Maar als die rare karakters in een file staan en je leest die in een string, deze stuur je door een socket naar de IRC client, dan hoeft PERL er toch geen 'ondersteuning' voor te hebben.
Dat klopt.

Perl kan gewoon UTF8 strings lezen en versturen, ook al zou ie geen flauw benul hebben van welke tekens het voorstellen. Alleen bij dingen als length(), substr(), regexen waarbij je een specifiek aantal tekens wilt matchen, enz. moet je oppassen omdat het daarbij van belang is dat doorhebt dat een karakter langer dan 1 byte kan zijn.

Is het probleem niet eerder dat de meeste irc *clients* helemaal geen UTF8 gebruiken, maar gewoon de standaard tekenset van het land waarin de eigenaar zich bevindt?

  • Space_NL
  • Registratie: Januari 2002
  • Laatst online: 24-03-2025

Space_NL

ScoutLink DPC Team

Topicstarter
Sorry dat het lang duurde, iemand besloot dat ik op vakantie mocht :-)

<code>
sub question {
my $self = shift;
my $time = `$getdate +"%T"`;
chomp $time;
if (!@question) {
$self->privmsg([ $config{channel} ], "$language{endscore}");
&scores($self);
&reset;
$self->privmsg([ $config{channel} ], "$language{reset}");
if ($config{auto} eq "on") {
$self->schedule($config{delay}, \&question);
}
} elsif (!$question_on) {
$question_on = 1;
$question{number} ++;
my $askline = @question;
my $asknum = int(rand($askline));
my $line = $question[$asknum];
splice(@question, $asknum, 1);
chomp $line;
($question{line}, $question{ans1}, $question{ans2}, $question{ans3}, $question{ans4}, $question{ans5}, $question{correct}) = split(/\|/, $line);
$self->schedule($config{timer}, \&timer);
print LOG "[$time] <$config{nick}> Question $question{number}: $question{line}\n";
print LOG "[$time] <$config{nick}> 1) $question{ans1}\n";
print LOG "[$time] <$config{nick}> 2) $question{ans2}\n";
print LOG "[$time] <$config{nick}> 3) $question{ans3}\n";
print LOG "[$time] <$config{nick}> 4) $question{ans4}\n";
print LOG "[$time] <$config{nick}> 5) $question{ans5}\n";
print LOG "[$time] <$config{nick}> You got $config{timer} seconds to answer\n";

$self->privmsg([ $config{channel} ], "$language{question} $question{number} $question{line}");
$self->privmsg([ $config{channel} ], "1) $question{ans1}");
$self->privmsg([ $config{channel} ], "2) $question{ans2}");
$self->privmsg([ $config{channel} ], "3) $question{ans3}");
$self->privmsg([ $config{channel} ], "4) $question{ans4}");
$self->privmsg([ $config{channel} ], "5) $question{ans5}");
$self->privmsg([ $config{channel} ], "$language{yougot} $config{timer} $language{secstoans}");
}
}
</code>
Dit is het onderdeel van de code waarin ik vermoed dat het foutgaat ...

sommige strings worden opengebroken/geplitst.

De clients zijn het probleem niet, want de quitmsg word bijvoorbeeld ook met "rare" tekens verstuurd, en kan iedereen gewoon lezen.

iemand suggesties ? ta

The Path of the least resistance will seldom lead u beyond your own doorstep


  • BdR
  • Registratie: Juni 2001
  • Laatst online: 03-09-2025

BdR

TV is gooder then books

Afbeeldingslocatie: http://www.pygame.org/ftp/screenshots/perl_coder.jpg
:D ;)

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider