Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^2: "Unrecognized character" stops perl cold

by andyford (Curate)
on Jan 22, 2008 at 20:53 UTC ( [id://663687]=note: print w/replies, xml ) Need Help??


in reply to Re: "Unrecognized character" stops perl cold
in thread "Unrecognized character" stops perl cold

Yes, thanks, you put me right onto "the" answer for my work enviroment.

In your vimrc, put

vmap ,qq :%s/’/'/g<CR> nmap ,qq :%s/’/'/g<CR>
where the first quote is entered as a digraph: Ctrl-V Ctrl-K '9.

At that point "comma q q" is mapped in vim to replace all the bad fancy quotes with good single quotes.

Replies are listed 'Best First'.
Re^3: "Unrecognized character" stops perl cold
by naChoZ (Curate) on Jan 23, 2008 at 20:17 UTC

    That will only handle that one character. The problem is there are other characters that are modified as well. After my previous post the other day, I ended up going and making a much more verbose version of that script. Now the bad characters can be referred to by name. Plus I added a silly way of making it display the identity of characters to make it easier to find more that need to be fixed.

    #!/usr/bin/perl -n #use strict; #use warnings; use charnames (); use encoding "utf8"; $|++; my $chars = { 'HYPHEN' => '-', # \x{2010} 'MINUS SIGN' => '-', # \x{2212} 'FIGURE DASH' => '-', # \x{2012} 'RIGHT SINGLE QUOTATION MARK' => "'", # \x{2212} 'BOX DRAWINGS LIGHT VERTICAL' => '|', # \x{2502} }; # If the first character is an equal sign, skip it and # display the identity of each remaining characters. # if (/^=/) { for my $index ( 1 .. length($_) - 1 ) { my $char = substr( $_, $index++, 1 ); print $char . " " . sprintf( "\\x{%04X}", ord($char) ) . "\" = '" . charnames::viacode( ord($char) ) . "'\n" ; } } else { for my $cname ( keys %$chars ) { my $char = chr( charnames::vianame($cname) ); s/$char/$chars->{$cname}/g; } print; }

    --
    naChoZ

    Therapy is expensive. Popping bubble wrap is cheap. You choose.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://663687]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (3)
As of 2024-04-19 19:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found