On 21/09/2010 19:32, Hanno Schlichting wrote: > Because there's not all that many people left using plain Zope 2 and > upgrading to new versions.
Well, or they assume they must be doing something wrong because of this default. > The rest is using Plone, which has its own version of this: > > def _unicode_replace(structure): > if isinstance(structure, str): > text = structure.decode('utf-8', 'replace') > else: > text = unicode(structure) > return text > > class UTF8EncodingConflictResolver(object): > implements(IUnicodeEncodingConflictResolver) > > def resolve(self, context, text, expression): > return _unicode_replace(text) Right, although the 'replace' is a lame cop out too ;-) > We can do this, as we force manage_page_charset and > default-zpublisher-encoding to be utf-8 and only support utf-8 and > Unicode in the database. Fundamentally, the developer must know what encoding is being used in their data. So, they should be able to register an appropriate decoder BUT... > Zope 2 itself tries to support arbitrary encodings, at which point it > can only guess badly or fail. ...having this default, which makes ABSOLUTELY NO SENSE in this universe, or likely any other, is fucking crazy. So, would anyone object if I change the default, on both trunk and the 2.12 branch to some variant of: class BasicEncodingConflictResolver(object): implements(IUnicodeEncodingConflictResolver) def resolve(self, context, text, expression): logging.warn('You should register an ' 'IUnicodeEncodingConflictResolver that matches ' 'your content') return text.decode('ascii','replace') ...and delete that devil spawn turd that is PreferredCharsetResolver? cheers, Chris -- Simplistix - Content Management, Batch Processing & Python Consulting - http://www.simplistix.co.uk _______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )