2013-11-25 2 views
1

Я получаю следующий результат при использовании этих двух классов.Разница между cStringIO.StringIO.write и String.StringIO.write в Python

In [15]: StringIO.StringIO().write(u'\u2222') 

In [16]: cStringIO.StringIO().write(u'\u2222') 
--------------------------------------------------------------------------- 
UnicodeEncodeError      Traceback (most recent call last) 
<ipython-input-16-a7a28c8bfb39> in <module>() 
----> 1 cStringIO.StringIO().write(u'\u2222') 

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

Любое тело знает, почему и как это происходит?

+0

Вот он: http://stackoverflow.com/questions/12801166/python2-6-cstringio-unicode-support – PasteBT

ответ

4

Из documentation for cStringIO:

В отличие от StringIO модуля, этот модуль не может принимать строки Unicode, которые не могут быть закодированы в виде простых строк ASCII.

Смежные вопросы