RT @https://groups.google.com/group/binsos/browse_thread/thread/1951b77a2cf4bfab
def getPY(s):
try: chr=s.encode("GB18030")
except: return s
if chr<"\xb0\xa1": return s
if chr>"\xd7\xf9": return u"?"
if chr<"\xb0\xc5": return u"a"
if chr<"\xb2\xc1": return u"b"
if chr<"\xb4\xee": return u"c"
if chr<"\xb6\xea": return u"d"
if chr<"\xb7\xa2": return u"e"
if chr<"\xb8\xc1": return u"f"
if chr<"\xb9\xfe": return u"g"
if chr<"\xbb\xf7": return u"h"
if chr<"\xbf\xa6": return u"j"
if chr<"\xc0\xac": return u"k"
if chr<"\xc2\xe8": return u"l"
if chr<"\xc4\xc3": return u"m"
if chr<"\xc5\xb6": return u"n"
if chr<"\xc5\xbe": return u"o"
if chr<"\xc6\xda": return u"p"
if chr<"\xc8\xbb": return u"q"
if chr<"\xc8\xf6": return u"r"
if chr<"\xcb\xfa": return u"s"
if chr<"\xcd\xda": return u"t"
if chr<"\xce\xf4": return u"w"
if chr<"\xd1\xb9": return u"x"
if chr<"\xd4\xd1": return u"y"
if chr<"\xd7\xfa": return u"z"
return s