chardet是一个非常优秀的编码识别模块。
了解python中str的编码后可以利用decode和encode来实现编码的转换。
basestring(),抽象类型是str和unicode的超类,不能被调用和实例化,但是能被用来判断是否一个对象是str或unicode,isinstance(obj, basesring)等同于isinstance(obj, (str, unicode))。
str([object]) ,返回一个可打印的字符串。致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于eval()求值。但很适合用于print语句输出。
repr(),和``做的是完全一样的事情,绝大多数情况下可以通过求值运算(使用内建函数eval())重新得到该对象。
unicode([object[, encoding[, errors]]]) ,先将一个字符编码解码成python内部的unicode字符串,然后通过相应的字符编码器再将该unicode字符串编码成另一种字符编码。
需要再次提醒的是,并不是所有repr()返回的字符串都能够用 eval()内建函数得到原来的对象。 也就是说 repr() 输出对 Python比较友好,而str()的输出对用户比较友好。
eval(str("123"))结果是123数字,而eval(repr("123"))结果是'123'字符串。
str()和repr()都是将其他类型转换为字符串。