On 02/12/2013 10:29 AM, Magnus Pettersson wrote:
Are you sure you are writing the same data? That would mean that pydev

changes the default encoding -- which is evil.



A portable approach would be to use codecs.open() or io.open() instead of

the built-in:



import io

with io.open(filepath, "a") as f:

     ...



io.open() uses UTF-8 by default, but you can specify other encodings with

I think you are using Python 2.x, not Python 3. So you'd better be explicit what encodings you want for each file.


io.open(filepath, mode, encoding=whatever).


Interesting. Pydev must be doing something behind the scenes because when i 
changed open() to io.open() i get error inside of eclipse now:

What encoding is this file? Since you're appending to it, you really need to match the pre-existing encoding, or the next program to deal with it is in big trouble. So using the io.open() without the encoding= keyword is probably a mistake.


f.write(card+"\n")
   File "C:\python27\lib\encodings\cp1252.py", line 19, in encode
     return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character u'\u53c8' in position 32: 
character maps to <undefined>

....



--
DaveA
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to