Not sure why that code I posted isn't working but I tested this by itself and it works for me.
http://pastebin.com/m36083f0f@Riamus2
I can send and display utf-8 characters just fine in mirc.
@Khaled
I didn't really test the snippet that posted before, but the new link should work. I also checked that utf-8 was on for all windows.
@XperTeeZ
turned that on and it didn't seem to do anything
@Everyone
Thanks for all help.
Edit:
Well my suspensions were correct. Google is at fault here, well at least they seem to use some weird characters. Babblefish seems to have encoded utf-8 when I looked at the source for a page with a translation on it. So doing $utfdecode() on the result from Babblefish yields the japansese text. This is really a bummer since google has an auto-detect feature which is quite handy.
Edit2:
Well it might not be completely google, saving a webpage and having the sockread write out a file. They turn out differently. So maybe the sockread just doesn't handle utf-8 that well.
Since I can't give up on something like this I might try getting something else like a cmd line app to save the webpage then parse that out.