Opened 17 years ago
Closed 17 years ago
#7955 closed defect (worksforme)
LookupError: unknown encoding: utf8_euro
| Reported by: | udono | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | general | Version: | 0.12dev |
| Severity: | normal | Keywords: | |
| Cc: | Branch: | ||
| Release Notes: | |||
| API Changes: | |||
| Internal Changes: | |||
Description (last modified by )
0.12multirepos-r7684 The following Error raises on "Timeline" and other menu items:
2009-01-09 18:17:13,383 Trac[main] ERROR: unknown encoding: utf8_euro
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/Trac-0.12multirepos_r7684-py2.5.egg/tra
c/web/main.py", line 456, in _dispatch_request
dispatcher.dispatch(req)
File "/usr/lib/python2.5/site-packages/Trac-0.12multirepos_r7684-py2.5.egg/tra
c/web/main.py", line 213, in dispatch
resp = chosen_handler.process_request(req)
File "/usr/lib/python2.5/site-packages/Trac-0.12multirepos_r7684-py2.5.egg/tra
c/timeline/web_ui.py", line 126, in process_request
'today': format_date(today),
File "/usr/lib/python2.5/site-packages/Trac-0.12multirepos_r7684-py2.5.egg/trac/util/datefmt.py", line 121, in format_date
return format_datetime(t, format, tzinfo=tzinfo)
File "/usr/lib/python2.5/site-packages/Trac-0.12multirepos_r7684-py2.5.egg/trac/util/datefmt.py", line 113, in format_datetime
return unicode(text, encoding, 'replace')
LookupError: unknown encoding: utf8_euro
My system locale: LANG=de_DE.utf8@euro LC_CTYPE="de_DE.utf8@euro" LC_NUMERIC="de_DE.utf8@euro" LC_TIME="de_DE.utf8@euro" LC_COLLATE=C LC_MONETARY="de_DE.utf8@euro" LC_MESSAGES="de_DE.utf8@euro" LC_PAPER="de_DE.utf8@euro" LC_NAME="de_DE.utf8@euro" LC_ADDRESS="de_DE.utf8@euro" LC_TELEPHONE="de_DE.utf8@euro" LC_MEASUREMENT="de_DE.utf8@euro" LC_IDENTIFICATION="de_DE.utf8@euro" LC_ALL=
Attachments (0)
Change History (4)
follow-up: 3 comment:1 by , 17 years ago
comment:2 by , 17 years ago
| Description: | modified (diff) |
|---|---|
| Milestone: | 0.12 |
| Severity: | blocker → normal |
Please use verbatim blocks ({{{ }}}) and always preview your ticket before submitting it: your message is hardly readable.
Is your locale properly configured on your machine?
utf8@euro is quite unusual: utf8 (unicode) already defined the euro symbol. It's quite common to use @euro for ISO-8859 page code, but it looks like unusual with UTF-8.
This is not a blocker issue anyway: simply use another locale (de_DE.utf8 should do it)
comment:3 by , 17 years ago
Sorry, wrong formatted… again:
diff -u /usr/lib/python2.5/site-packages/Trac-0.12multirepos_r7684-py2.5.egg/trac/util/datefmt.py.orig /usr/lib/python2.5/site-packages/Trac-0.12multirepos_r7684-py2.5.egg/trac/util/datefmt.py--- /usr/lib/python2.5/site-packages/Trac-0.12multirepos_r7684-py2.5.egg/trac/util/datefmt.py.orig 2009-01-09 21:44:04.000000000 +0100
+++ /usr/lib/python2.5/site-packages/Trac-0.12multirepos_r7684-py2.5.egg/trac/util/datefmt.py 2009-01-09 21:35:47.000000000 +0100
@@ -32,11 +32,11 @@
def to_datetime(t, tzinfo=None):
"""Convert `t` into a `datetime` object, using the following rules:
-
+
- If `t` is already a `datetime` object, it is simply returned.
- If `t` is None, the current time will be used.
- If `t` is a number, it is interpreted as a timestamp.
-
+
If no `tzinfo` is given, the local timezone will be used.
Any other input will trigger a `TypeError`.
@@ -90,12 +90,12 @@
r = int(round(r))
return '%d %s' % (r, r == 1 and unit or unit_plural)
return ''
-
+
def format_datetime(t=None, format='%x %X', tzinfo=None):
"""Format the `datetime` object `t` into an `unicode` string
If `t` is None, the current time will be used.
-
+
The formatting will be done using the given `format`, which consist
of conventional `strftime` keys. In addition the format can be 'iso8601'
to specify the international date format.
@@ -110,6 +110,10 @@
if sys.platform != 'win32' or sys.version_info[:2] > (2, 3):
encoding = locale.getlocale(locale.LC_TIME)[1] or encoding
# Python 2.3 on windows doesn't know about 'XYZ' alias for 'cpXYZ'
+ try:
+ (encoding, False) = encoding.split("_")
+ except:
+ pass
return unicode(text, encoding, 'replace')
def format_date(t=None, format='%x', tzinfo=None):
@@ -211,7 +215,7 @@
if dt is None:
dt = _parse_relative_time(text, tzinfo)
if dt is None:
- hint = get_date_format_hint()
+ hint = get_date_format_hint()
raise TracError('"%s" is an invalid date, or the date format '
'is not known. Try "%s" instead.' % (text, hint),
'Invalid Date')
@@ -415,7 +419,7 @@
_gmt_index = bisect(_pytz_zones, 'GMT')
all_timezones = _pytz_zones[:_gmt_index] + all_timezones[1:] + \
_pytz_zones[_gmt_index:]
-
+
except ImportError:
def timezone(tzname):
comment:4 by , 17 years ago
| Keywords: | multirepos removed |
|---|---|
| Resolution: | → worksforme |
| Status: | new → closed |
See PythonBug:3011. Upgrade to Python 2.6.



The following patch helps in my case:
diff -u /usr/lib/python2.5/site-packages/Trac-0.12multirepos_r7684-py2.5.egg/trac/util/datefmt.py.orig /usr/lib/python2.5/site-packages/Trac-0.12multirepos_r7684-py2.5.egg/trac/util/datefmt.py—- /usr/lib/python2.5/site-packages/Trac-0.12multirepos_r7684-py2.5.egg/trac/util/datefmt.py.orig 2009-01-09 21:44:04.000000000 +0100 +++ /usr/lib/python2.5/site-packages/Trac-0.12multirepos_r7684-py2.5.egg/trac/util/datefmt.py 2009-01-09 21:35:47.000000000 +0100 @@ -32,11 +32,11 @@
+
tis already adatetimeobject, it is simply returned.tis None, the current time will be used.tis a number, it is interpreted as a timestamp.+
@@ -90,12 +90,12 @@
+
+
@@ -110,6 +110,10 @@
+ try: + (encoding, False) = encoding.split("_") + except: + pass
@@ -211,7 +215,7 @@
+ hint = get_date_format_hint()
@@ -415,7 +419,7 @@
+