in reply to Unicode Conversion
If you want to replace any character whatever with its hex-numeric entity reference, you can do it like this:
Since the string contained in $num_ent_chars is being used inside square brackets in the regex (to define a character class), most of the regex-magic meanings for things like ".", "*", "?", "+" etc do not apply. You just need to be careful when the character class has to include square brackets, hyphen and caret -- either escape these with "\", or place them carefully -- for example:my $num_ent_chars = "()"; # add other characters as needed, but ^ - [ + ] are special $data =~ s/([$num_ent_chars])/sprintf("&#x%4x;",ord($1))/ge;
will print "me xxx and xxx you xxx and xxx him".perl -le '$_="me [ and ] you ^ and - him"; $c="][^-"; s/[$c]/xxx/g; + print'
|
|---|