所以我有一些用户输入(在Python中),可以是任何数据类型(int,str,unicode等),我需要转换为str类型。我遇到的问题是,如果所有输入都是字符串或unicode,那么我可以在输入上使用myVar.encode('utf-8', 'ignore')
,但由于输入可能是一个int,这不起作用,因为ints don& #39; t有编码功能。
我已使用str(unicode(myVar, errors='ignore'))
并且它已在我的本地计算机上运行,但我的生产环境会抛出错误:"TypeError: decoding Unicode is not supported"
,因此我需要使用其他方法。双重解决方案首先似乎是错误的。
为什么字符串编码总是如此混乱?提前感谢您的帮助。
答案 0 :(得分:0)
(myVar if hasattr(myVar, 'encode') else str(myVar)).encode('utf-8', 'ignore')
如果变量具有encode
属性,则它可能是字符串或Unicode对象,我们可以直接encode()
。如果它没有,那么它可能是int
,我们会在尝试str()
之前将其转换为encode()
。