py26 through 3.3+ encoding compatibility