use unichr() instead of chr(n).decode for py3k