from __future__ import print_function import sys V3K = False #: Python3.5+ if sys.version_info[:2] > (3, 4,): V3K = True ISSTR = (str, bytes,) # : string as unicode unicode = str # @ReservedAssignment elif sys.version_info[:2] > (2, 6,) and sys.version_info[:2][0] < 3: ISSTR = (str, unicode,) # : string and unicode else: raise Exception("Requires Python 2.7+, or 3.5+:" + str(sys.version_info[:2])) print() print(sys.version_info) print() print("V3K = " + str(V3K)) print("unicode = " + str(unicode)) print("ISSTR = " + str(ISSTR)) print() mystring = "abc" b0 = bytes(mystring.encode('ascii')) u0 = unicode(b0, 'utf-8') # result: abc u1 = unicode(b0) # result: b'abc' print("b0: " + str(b0)) print("u0: " + str(u0)) print("u1: " + str(u1)) print("type(b0): " + str(type(b0))) print("type(u0): " + str(type(u0))) print("type(u1): " + str(type(u1))) print("len(b0): " + str(len(b0))) print("len(u0): " + str(len(u0))) print("len(u1): " + str(len(u1)))