import cjson
import sys
reload(sys)
encoding = sys.getdefaultencoding()
print encoding
campus = u'\u5927\u5b66\u6821\u56ed'
campus_utf8 = campus.encode("utf-8")
# ascii tests
sys.setdefaultencoding("ascii")
print cjson.encode([campus])
print cjson.encode([campus_utf8])
sys.setdefaultencoding("iso-8859-1")
print cjson.encode([campus])
print cjson.encode([campus_utf8])
sys.setdefaultencoding("utf8")
print cjson.encode([campus])
print cjson.encode([campus_utf8])
sys.setdefaultencoding("utf-8")
print cjson.encode([campus])
print cjson.encode([campus_utf8])
print "roundtrip testing"
for i in range(0xd800) + range(0xe000, 0xffff):
ch1 = unichr(i)
ch2 = cjson.decode(cjson.encode(ch1.encode("utf-8")))
if ch1 != ch2:
print repr(ch1), "!=", repr(ch2)
print "invalid characters"
for i in range(0x100):
ch1 = chr(i).decode("utf-8", "replace")
ch2 = cjson.decode(cjson.encode(chr(i)))
if ch1 != ch2:
print repr(ch1), "!=", repr(ch2)
# restore, just to be nice :)
sys.setdefaultencoding(encoding)