Keep cPO units in utf-8 always

convert to file encoding on __str__ conversion
(switch to utf-8 if an encoding error occurs) - this matches pyPO behavior