\xc3\xb6 is not the right byte(s) for a Ų from a Latin-1 terminal, it is the UTF-8 encoding. Meaning it can only be issued by a UTF-8 encoded source (and still mean Ų). So what you are asking to do sanely, strikes me asÖstrange. If it is coming from a Latin-1 encoding source it would be \xf6. To do encoding properly you have to know what you are receiving, decode it with that, and know what your output layer is, encode it to that. Itís not easy but itís not magical either. Without the right steps at the right layers itís literally guesswork and impossible to do robustly.