我在 python 中使用 unicode 时遇到了一些麻烦,所以我编写了这个程序,结果让我感到困惑。每当我运行它时,不同的字符都会给我错误 #2,这意味着当我尝试将 unicode 字符写入我的测试文件时,utf32、utf16 和 utf8 都会出错。从来没有相同的。是我的程序有问题,还是我在做一些 python 不能处理的事情?
for a in range(65535):
try:
open('test_text.txt','w').write(unichr(a).encode("utf32"))
if len(open('test_text.txt','r').read()) == 0:
print unichr(a) + ' Error #1 #' + str(a)
except IOError:
try:
open('test_text.txt','w').write(unichr(a).encode("utf16"))
except IOError:
try:
open('test_text.txt','w').write(unichr(a).encode("utf8"))
except IOError:
print unichr(a) + ' Error #2 #' + str(a)
except UnicodeEncodeError:
print unichr(a) + ' Error #3 #' + str(a)
raw_input('\n\nEnter char to end:')