Author: chrisz
Date: 2009-03-05 16:03:14 -0700 (Thu, 05 Mar 2009)
New Revision: 3801

Modified:
   FormEncode/trunk/formencode/validators.py
Log:
Fix for bug #2666139: On a German Win XP system, DateValidator breaks in March 
when the German locale is activated, because the month name contains a 
non-ascii character and DateValidator tries to decode it, wrongly assuming the 
system is using utf-8, while Windows is using cp1252.

Modified: FormEncode/trunk/formencode/validators.py
===================================================================
--- FormEncode/trunk/formencode/validators.py   2009-03-05 17:53:16 UTC (rev 
3800)
+++ FormEncode/trunk/formencode/validators.py   2009-03-05 23:03:14 UTC (rev 
3801)
@@ -23,6 +23,7 @@
 Validator/Converters for use with FormEncode.
 """
 
+import locale
 import warnings
 import re
 DateTime = None
@@ -829,8 +830,8 @@
     def validate_python(self, value, state):
         date_format = self.message('date_format', state)
         if isinstance(date_format, unicode):
-            # strftime doesn't like unicode
-            encoding = 'utf8'
+            # strftime uses the locale encoding, not Unicode
+            encoding = locale.getlocale(locale.LC_TIME)[1] or 'utf-8'
             date_format = date_format.encode(encoding)
         else:
             encoding = None


------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
FormEncode-CVS mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/formencode-cvs

Reply via email to