2012-08-10 68 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