[Python-Dev] deleting setdefaultencoding iin site.py is evil

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Thu Aug 27 15:08:57 CEST 2009


On 26 Aug, 11:51 pm, chris at simplistix.co.uk wrote:
>exarkun at twistedmatrix.com wrote:
>>The ability to change the default encoding is a misfeature.  There's 
>>essentially no way to write correct Python code in the presence of 
>>this feature.
>
>How so? If every single piece of text in your project is encoded in a 
>superset of ascii (such as utf-8), why would this be a problem?
>Even if you were evil/stupid and mixed encodings, surely all you'd get 
>is different unicode errors or mayvbe the odd strange character during 
>display?

This is what I meant when I said what I said about correct code.  If 
you're happy to have encoding errors and corrupt data, then I guess 
you're happy to have a function like setdefaultencoding.
>>It may be a major task, but the best thing you can do is find each str 
>>and unicode operation in the software you're working with and make 
>>them correct with respect to your inputs and outputs.  Flipping a 
>>giant switch for the entire process is just going to change which 
>>things are wrong.
>
>Well, flipping that giant switch has worked in production for the past 
>5 years, so I'm afraid I'll respectfully disagree. I'd suspect the 
>pragmatics of real world software are with that function even exists, 
>and it's extremely useful when used correctly...

I suppose it's fortunate for you that the function exists, then.  For my 
part, I have managed to write and operate a lot of code in production 
for at least as long without ever touching it.  Generally speaking, I 
also don't find that I encounter lots of unicode errors or corrupted 
data (*sometimes* I do; in those cases, I fix the broken code and it 
doesn't happen again).

Jean-Paul


More information about the Python-Dev mailing list