2012-08-10 64 views
0

我有一個概要如下:UnicodeEncodeError - UTF8和Unicode()不工作

synopsis = 'Eine Geschichte, wie im normalen Leben... Der als äußerst vorsichtig 
      geltende Risikoanalytiker Ruben verlässt seine Frau,...' 

我試圖寫一個文件,而是繼續運行到:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 705: ordinal not in range(128)

這裏是什麼我已經試過:

synopsis = unicode(synopsis) 
new_file.write('%s' % synopsis) 

synopsis = synopsis.encode('utf-8') 
new_file.write('%s' % synopsis) 

另外,我有我的文件頂部指定# # -*- coding: utf-8 -*-

爲什麼發生這種情況,我該如何解決?

+0

你應該使用codecs.open()寫Unicode文本並使用U「」字符串或「文本」 .decode('utf-8') – sherpya 2012-08-10 23:13:10

+0

您能否說明在回答中這將如何完成? – David542 2012-08-10 23:15:05

+1

http://farmdev.com/talks/unicode/ – 2012-08-10 23:16:01

回答

1

你好嗎new_file

import codecs 
new_file = codecs.open('out', mode='w', encoding='utf-8') 

這應該允許您將Unicode字符串寫入文件,該文件將被編碼爲UTF-8。

(除非特別設定,sys.getdefaultencoding()'ascii',從而影響新打開的文件的編碼。)

+0

很好,這個工程。謝謝你的解釋。 – David542 2012-08-10 23:23:08