Hi folks, I recently did a major upgrade on a site and moved it to a vps
that I'm maintaining, and now I seem to have lost all ability to enter
unicode.
I'm using TG 1.0.4.3, SA 0.4.2p3, ToscaWidgets, and mysql. The server is
Ubuntu 6.06, python 2.4
I changed the default character set on mysql to utf8 and I changed the
character set on the database in question to utf8. My mysql settings
look like this now:
mysql> show variables like 'character\_set\_%';
+--------------------------+--------+
| Variable_name | Value |
+--------------------------+--------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
+--------------------------+--------+
I have the following in my .cfg:
sqlalchemy.convert_unicode = True
sqlalchemy.dburi="mysql://web:password/momcafe_dev"
My model has the fields in question declared as columns of type unicode,
and the widget uses a schema with UnicodeString validators. Here is an
extract of the widget is for good measure:
# basic membership widget
class MemberProfileWidget( TableForm ):
engine_name = "genshi"
fields = [
TextField( "business_name", label_text="Business Name: ", ),
TextField( "business_position", label_text="Title ", ),
TextArea( "business_description", label_text="Description: ", ),
...
]
# using separate schema to allow password checks
class MemberProfileSchema(v.Schema):
filter_extra_fields = True
allow_extra_fields = True
business_name = v.UnicodeString()
business_position = v.UnicodeString()
business_description = v.UnicodeString()
validator = MemberProfileSchema()
Using the same type of code on a webfaction account with their mysql
setup, but without ToscaWidgets, I was having no problems with unicode
data being entered. Now if I try to enter unicode I get this traceback
from SA:
(partial)
File
"/usr/lib/python2.4/site-packages/SQLAlchemy-0.4.2p3-py2.4.egg/sqlalchemy/databases/mysql.py",
line 1472, in do_execute
cursor.execute(statement, parameters)
File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py", line 137, in
execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.4/site-packages/MySQLdb/connections.py", line 33, in
defaulterrorhandler
raise errorclass, errorvalue
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 42:
ordinal not in range(128)
I'm at a loss as to how to proceed. Any help would be much appreciated, it's
causing serious problems right now!
Thanks
Iain
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"TurboGears" 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/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---