Thanks Phillip, that solves the problem. I managed myself to find a less elegant but, equally effective, solution. I operates over the string passing the result to a second scalar that gets encoded as a string of bytes:
my ($description, $value) = split(":",$biblio[$n]); <- These are UTF8 Encoded my $value = sprintf("%4.2f", $value); <- Here $value goes back to a string of bytes my $lstring = length($description); my $newdesc = substr($description,0,$lstring); <- Here $newdesc has $description as a string of bytes After this the digests are all different and correct. It is not elegant but works. Thanks again. -----Original Message----- From: Philip Mak [mailto:[EMAIL PROTECTED]] Sent: Wednesday, January 29, 2003 10:07 AM To: Fernando Munoz Cc: '[EMAIL PROTECTED]' Subject: Re: UTF8 issue I'm guessing you'll have to somehow "cast" the UTF8 strings so that they're interpreted byte-by-byte, rather than character-by-character. Maybe try "use utf8;" and then pass utf8::encode($str) instead of $str to the MD5 function. On Wed, Jan 29, 2003 at 09:50:13AM -0800, Fernando Munoz wrote: > Well, there's no error logging that I can refer to, but when you try > to hexdec these strings (the ones coming in UTF8) no matter how > different the strings are, they always return the same digest. > Searching around I find this note : > > "Perl 5.8 support Unicode characters in strings. Since the MD5 > algorithm is only defined for strings of bytes, it can not be used > on strings that contains chars with ordinal number above 255. The > MD5 functions and methods will croak if you try to feed them such > input data:" > > in the documentation for Digest::MD5 > (http://search.cpan.org/author/GAAS/Digest-MD5/MD5.pm). ___________________________________________________ Lions Gate Entertainment, Inc. [ AMEX: lgf ] Five Proud Years, One Independent Spirit. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]