- From: Abigail <abigail@tungsten.gn.iaf.nl>
 - Date: Wed, 20 Dec 1995 06:02:50 +0100 (MET)
 - To: philipp@res.enst.fr (Philippe-Andre Prindeville)
 - Cc: www-html@w3.org
 
You, Philippe-Andre Prindeville wrote:
++ 
++ Hi.
++ 
++         I'm using perl 4.0pl36 (on an HP-UX 9.01 system) and perl 5.000
++ on a SunOS 4.1.3_U1 system, and I'm trying to convert accented (French)
++ text to HTML via:
++ 
++ 	$line =~ s/[&<>\200-\377]/sprintf("&#%d;", unpack("C", $1))/ge;
++ 
++ thinking this would convert all high-bit set characters to their
++ decimal equivalent as "&#nn;" but this isn't turning out as
++ expected.
++ 
++ 	I'm wondering about this.  Probably something stupid, but....
++ Anyone have a quick fix?
The problem is that $1 doesn't match anything... Use either:
$line =~ s/([&<>\200-\377])/sprintf("&#%d;", unpack("C", $1))/ge;
or:
$line =~ s/[&<>\200-\377]/sprintf("&#%d;", unpack("C", $&))/ge;
This should work too:
$line =~ s/[&<>\200-\377]/sprintf("&#%d;", ord ($&))/ge;
Abigail
Received on Wednesday, 20 December 1995 00:03:34 UTC