Why is the below item failing? Why does it succeed with "latin-1" codec?
o = "a test of \\xe9 char" #I want this to remain a string as thi
Because UTF-8 is multibyte and there is no char corresponding to your combination of \xe9 plus following space.
\xe9
Why should it succeed in both utf-8 and latin-1?
Here how the same sentence should be in utf-8:
>>> o.decode('latin-1').encode("utf-8") 'a test of \xc3\xa9 char'