Re: IUnicodeEncodingConflictResolver moronosity

Chris Withers <[email protected]>
Newsgroups gmane.comp.web.zope.devel
Message-ID <[email protected]>
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  -  [email protected]
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 )
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.