From: SourceForge.net <no...@so...> - 2007-10-05 17:12:09
|
Bugs item #1808214, was opened at 2007-10-05 13:11 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1808214&group_id=12867 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Core Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: mnepveu (sysrmn) Assigned to: Nobody/Anonymous (nobody) Summary: Unicode strings, 2.2.1RC2 Initial Comment: The following works with Jython 2.2 and 2.1, but is broken in 2.2.1: Jython 2.2.1rc2 on java1.5.0_07 Type "copyright", "credits" or "license" for more information. print u"Num\u00e9ro requis." Traceback (innermost last): File "<console>", line 1, in ? UnicodeError: ascii encoding error: ordinal not in range(128) It also breaks Reportlab. While printing an invoice containing accented characters, the following message is displayed: ... File "N:\DEV\TEST\reportlab-1.19.jar\reportlab/platypus/ tables.py", line 357, in _calc_height UnicodeError: ascii encoding error: ordinal not in range(128) Lines 356 and 357 are: if t is not StringType: v = v is None and '' or str(v) ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1808214&group_id=12867 |
From: SourceForge.net <no...@so...> - 2007-10-05 17:26:46
|
Bugs item #1808214, was opened at 2007-10-05 12:11 Message generated for change (Comment added) made by cgroves You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1808214&group_id=12867 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Core Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Marcel Nepveu (sysrmn) Assigned to: Nobody/Anonymous (nobody) Summary: Unicode strings, 2.2.1RC2 Initial Comment: The following works with Jython 2.2 and 2.1, but is broken in 2.2.1: Jython 2.2.1rc2 on java1.5.0_07 Type "copyright", "credits" or "license" for more information. print u"Num\u00e9ro requis." Traceback (innermost last): File "<console>", line 1, in ? UnicodeError: ascii encoding error: ordinal not in range(128) It also breaks Reportlab. While printing an invoice containing accented characters, the following message is displayed: ... File "N:\DEV\TEST\reportlab-1.19.jar\reportlab/platypus/ tables.py", line 357, in _calc_height UnicodeError: ascii encoding error: ordinal not in range(128) Lines 356 and 357 are: if t is not StringType: v = v is None and '' or str(v) ---------------------------------------------------------------------- >Comment By: Charles Groves (cgroves) Date: 2007-10-05 12:26 Message: Logged In: YES user_id=1174327 Originator: NO It was actually a bug that this worked in earlier versions. Jython would blindly dump a unicode objects out to print when it should've run it through sys.defaultencoding to turn it into a str first. This doesn't work for me on CPython either: Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) [GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> print u"Num\u00e9ro requis." Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 3: ordinal not in range(128) >>> It may work for you there because your defaultencoding is different. You can do the same thing for Jython. Edit your site.py to set defaultencoding to utf-8 or whatever it is in CPython. I imagine Reportlab is expecting to have a defaultencoding that can handle unicode, or that you would handle the encoding on your own with an explicit encode call beforehand. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1808214&group_id=12867 |
From: SourceForge.net <no...@so...> - 2007-10-06 05:34:08
|
Bugs item #1808214, was opened at 2007-10-05 12:11 Message generated for change (Settings changed) made by cgroves You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1808214&group_id=12867 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Core Group: None >Status: Closed >Resolution: Invalid Priority: 5 Private: No Submitted By: Marcel Nepveu (sysrmn) Assigned to: Nobody/Anonymous (nobody) Summary: Unicode strings, 2.2.1RC2 Initial Comment: The following works with Jython 2.2 and 2.1, but is broken in 2.2.1: Jython 2.2.1rc2 on java1.5.0_07 Type "copyright", "credits" or "license" for more information. print u"Num\u00e9ro requis." Traceback (innermost last): File "<console>", line 1, in ? UnicodeError: ascii encoding error: ordinal not in range(128) It also breaks Reportlab. While printing an invoice containing accented characters, the following message is displayed: ... File "N:\DEV\TEST\reportlab-1.19.jar\reportlab/platypus/ tables.py", line 357, in _calc_height UnicodeError: ascii encoding error: ordinal not in range(128) Lines 356 and 357 are: if t is not StringType: v = v is None and '' or str(v) ---------------------------------------------------------------------- Comment By: Charles Groves (cgroves) Date: 2007-10-05 12:26 Message: Logged In: YES user_id=1174327 Originator: NO It was actually a bug that this worked in earlier versions. Jython would blindly dump a unicode objects out to print when it should've run it through sys.defaultencoding to turn it into a str first. This doesn't work for me on CPython either: Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) [GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> print u"Num\u00e9ro requis." Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 3: ordinal not in range(128) >>> It may work for you there because your defaultencoding is different. You can do the same thing for Jython. Edit your site.py to set defaultencoding to utf-8 or whatever it is in CPython. I imagine Reportlab is expecting to have a defaultencoding that can handle unicode, or that you would handle the encoding on your own with an explicit encode call beforehand. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1808214&group_id=12867 |