1

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:')
4

1 に答える 1

1

私が試したとき、あなたのコードはエラーをスローしませんでした。また、ループのたびにファイルをオーバーライドしています。モードを「w」ではなく「a」に変更して、ファイルに追加してみてください。または、次のようにすることもできます。

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 を参照してください

于 2013-07-21T02:05:07.083 に答える