Quick question: I've tested this in a couple of different terminals (roxterm and xterm), so I'm fairly sure it's GHC that's the problem. Have I missed a setting?

GHCi, version 6.10.4
Prelude> putStrLn "£"

Hugs98 200609-3
Hugs> putStrLn "£"
£


I get the same character output from a password generator I've writtern, after compilation with GHC

[iainb]$ ./makepass2 50 2 >> testfile.txt 
[iainb]$ cat testfile.txt 
H(xW!:maNyxZ;h,IW=Uu4G$ztc>k@Q[g6?y:�TbG&5Nd")+"5+


Iain