是将UTF-8字节转换为在Python 2.x和3中运行的字符串的唯一方法,x:str(val.decode(“utf-8”))?

时间:2016-12-06 22:55:54

标签: python python-2.7 python-3.x

我正在尝试编写向后兼容的代码,该代码涉及从磁盘读取一些数据,包括UTF-8字符串,将其作为字符串处理,然后将其写回磁盘。对我有用的唯一方法是:

 val=fh.read(n) 
 str(val.decode("utf-8")) 

这看起来真的很冗长,但我尝试的其他一切都无法在2.x或3.x中失败。有更简洁的方法吗?

这将生成一个字节数组,而不是3.x

上的字符串
 str(val) 

这在2.x(没有第二个参数)上失败

 str(val,"utf-8") 

当我尝试将值写回2.x(“期望的字符串,得到unicode”)时,这会失败:

 val.decode("utf-8")

尝试了几种组合,但没有运气。这真的是唯一的方法吗?

0 个答案:

没有答案