Python中unicode的问题

时间:2013-07-21 01:09:43

标签: python unicode

我在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:')

1 个答案:

答案 0 :(得分:1)

我尝试时,您的代码没有出现任何错误。此外,您每次循环都会覆盖文件。您可以尝试将模式更改为“a”而不是“w”以附加到文件。或者您可以简单地执行以下操作:

f = open('test_text.txt','wb')
for a in range(65535):
    f.write(unichr(a).encode("utf32"))
f.close()

这里有关于在python中读取/写入文件的更多信息: http://docs.python.org/2/tutorial/inputoutput.html