> I'm trying to convert
> 
> "12:34" => "12:34"
> 
> (I know there is a CGI module with unescapeHTML(), I'm working in a
> ruby environment that does not allow for additions of modules)
> 
> I'm trying:
> 
>     "12:34".gsub(/&#(\d+);/,'\1'.to_i.chr)
> 
> But I get "1234"
> 
> Can anyone explain what I'm doing wrong?

When ruby is about to call method #gsub, it evaluates the arguments.
The second argument is '\1'.to_i.chr -> 0.chr -> "\000".

> BTW I know I can do:
> 
>     "12:34".gsub(/&#(\d+);/) do
> 	Integer($1).chr
>     end
> 
> but for some reason in the ruby environment I'm working in
> I get 'Undefined method Integer for main:Object'

It's very strange that you get that error (works here). Maybe you can try
with $1.to_i.chr, as before.