Using Pylons-0l9.4.1 and Myghty-1.1.  I can't seem to set encoding to
utf-8 for Myghty or mod_python so that Pylons gets it.

My app was working well but just started bombing, likely because one
of my techs entered a name into a form which had non-ascii chars, and
then the rendering in the display failed.  When I run with debug
enabled, I get a bit more info:

    Error: Error(UnicodeDecodeError): 'ascii' codec can't decode byte 0xc3
    in position 15: ordinal not in range(128)
    File: /usr/local/clientproj/er/templates/vendor_show.myt line 11
    Context: 8:
    <tr><th>Client Name</th><th>Updated</th><th>Created</th></tr>
    9: %   for client in c.clients:
    10:     <tr>
    11:       <td><a href="<%h.url_for('client_show', 
client_id=client.client_id)%>"><%client.name%></a></td>
    12:       <td><%client.ts_updated%></td>
    13:       <td><%client.ts_created%></td>
    14:     </tr>


    Error - myghty.exception.Error: Error(UnicodeDecodeError?):
    'ascii' codec can't decode byte 0xc3 in position 15: ordinal not
    in range(128) at
    
/usr/local/lib/python2.4/site-packages/Myghty-1.1-py2.4.egg/myghty/requestbuffer.py
    line 367

I've read up on this and found suggestions in

  http://www.myghty.org/docs/params.myt#parameters_output_encoding

to set encoding in config/environment.py, which I've done:

    myghty = {}
    myghty['log_errors'] = True
    myghty['escapes'] = dict(l=webhelpers.auto_link, s=webhelpers.simple_format)

    myghty['output_encoding'] = 'utf-8'
    myghty['encoding_errors'] = 'htmlentityreplace'

    return pylons.config.Config(myghty, map, paths)

but this didn't help. The error continued to complain about "ascii"
codec so it looks like this setting above isn't getting seen by
myghty.  It also suggested setting this in the mod_python section of
my Apache config, which I also tried:

    <Location /er>
            SetHandler      mod_python
            Pythonhandler   mod_python.wsgi
            PythonPath      "['/usr/local/clientjob] + sys.path"
            PythonOption    wsgi.application startup-bluecoat::app
            PythonOption    SCRIPT_NAME /er
            # 2007-04-05 setting in config/environment.py isnt' working?        
    
            PythonOption         MyghtyOutputEncoding       "utf-8"
            PythonOption         MyghtyEncodingErrors       "htmlentityreplace"
    </Location>

But this also had no effect, same complaint about "ascii".

http://pylonshq.com/docs/internationalization.html said I could do the
following, again in config/environment.py:

   tmpl_options['myghty.output_encoding'] = 'UTF-8'

but that file didn't know about the "tmpl_options" dict.

I've seen similar suggestion to the above in a #pylons IRC transcript
but none of these are working for me.  Why is it still using an
"ascii" codec when I've set it in two different places?

I've tried removing the template cache .py and .pyc files but that had
no effect. 

I was finally able to get things to work by creating
.../site-packages/sitecustomize.py: 

    import sys
    sys.setdefaultencoding('utf-8')

and saw that one of my clients names was an O-umlaut.  (Should I now
expect surprises from other things, like the fact that I'm not using
unicode strings in my python?)

I'd really like to do this in Pylons or Myghty instead than site-wide
and don't understand why the documented mechanisms don't work for me.

Any suggestions? Thanks.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to