Modify ↓
Opened 17 years ago
Closed 17 years ago
#6535 closed defect (fixed)
Webadmin fails to save uft-8 (UnicodeDecodeError:)
Reported by: | Owned by: | Christian Boos | |
---|---|---|---|
Priority: | normal | Milestone: | 0.11 |
Component: | general | Version: | 0.11b1 |
Severity: | normal | Keywords: | unicode |
Cc: | Branch: | ||
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description
UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 0: ordinal not in range(128)
Reproduction
- got to admin/general/basics
- add an utf-8 project name (e.g. copy/pase this one: Σχέδιο
- Apply Changes
Request parameters:
{'__FORM_TOKEN': u'd9123783c98bf73d5a080637', 'cat_id': None, 'descr': u'Please add Project Description', 'name': u'\u03a3\u03c7\u03ad\u03b4\u03b9\u03bf \u039f\u03c1\u03b8\u03bf\u03bd\u03bf\u03bc\u03af\u03b1\u03c2', 'panel_id': None, 'path_info': None, 'url': u'http://example.org/'}
System Information
Trac | 0.11b1
|
Python | 2.4 (#1, Mar 22 2005, 21:42:42) [GCC 3.3.5 20050117 (prerelease) (SUSE Linux)]
|
setuptools | 0.6c7
|
SQLite | 3.3.4
|
pysqlite | 2.1.3
|
Genshi | 0.5dev-r700
|
Pygments | 0.7.1
|
Subversion | 1.1.3 (r12730)
|
Attachments (1)
Change History (9)
comment:1 by , 17 years ago
comment:2 by , 17 years ago
here it is
Python Traceback
Traceback (most recent call last): File "/var/www/vhosts/lazaridis.com/src/infra/trac/trac/web/main.py", line 398, in _dispatch_request dispatcher.dispatch(req) File "/var/www/vhosts/lazaridis.com/src/infra/trac/trac/web/main.py", line 195, in dispatch resp = chosen_handler.process_request(req) File "/var/www/vhosts/lazaridis.com/src/infra/trac/trac/admin/web_ui.py", line 108, in process_request path_info) File "/var/www/vhosts/lazaridis.com/src/infra/trac/trac/admin/web_ui.py", line 187, in render_admin_panel self.config.save() File "/var/www/vhosts/lazaridis.com/src/infra/trac/trac/config.py", line 184, in save if current is not False and current != default: UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 0: ordinal not in range(128)
comment:3 by , 17 years ago
more detailed
Code fragment: 179. default = None 180. if self.parent: 181. default = self.parent.get(section, option) 182. current = self.parser.has_option(section, option) and \ 183. self.parser.get(section, option) 184. if current is not False and current != default: 185. options.append((option, current)) 186. if options: 187. sections.append((section, sorted(options))) 188. 189. fileobj = open(self.filename, 'w') Local variables: Name Value current '\xce\xa3\xcf\x87\xce\xad\xce\xb4\xce\xb9\xce\xbf ... default u'Please add the Name' option 'name' options [] section 'project' sections [('account-manager', [('password_store', 'HtPasswdStore')]), ... self <Configuration ...
comment:4 by , 17 years ago
Component: | webadmin → general |
---|---|
Keywords: | unicode added |
Milestone: | → 0.11 |
Owner: | changed from | to
Ok, I see the problem (self.parent gives unicode back, and self.parser.get gives str back; the comparison promotes the str to unicode the automatic way)
by , 17 years ago
Attachment: | fix-config-save-r6367.diff added |
---|
Enforce unicode comparison between current value and default value from parent config
comment:6 by , 17 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
I didn't have a parent config (i.e no [inherit] file =...
) for that environment.
Could you please try the following fix?
comment:8 by , 17 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
You're welcome, thanks for the report.
Fixed in [6368].
Note:
See TracTickets
for help on using tickets.
Works fine for me … My test project name was already "Trac Dével (ü)", now it's "Trac Dével (ü) Σχέδιο" ;-)
Can you show us the backtrace?