Modify

Opened 11 years ago

Closed 11 years ago

Last modified 10 years ago

#801 closed defect (fixed)

Encoding problems with strings

Reported by: jean-baptiste.note@… Owned by: Herbert Valerio Riedel
Priority: normal Component: GitPlugin
Severity: normal Keywords:
Cc: jean-baptiste.note@… Trac Release: 0.10

Description

Hello,

My git commit logs have UTF-8 characters in them (essentially, unbreakable spaces, due to a lingering finger on the alt key in a UTF8 environment). This yields the following error:

Python Traceback

Traceback (most recent call last):

File "/usr/lib/python2.4/site-packages/trac/web/main.py", line 356, in dispatch_request

dispatcher.dispatch(req)

File "/usr/lib/python2.4/site-packages/trac/web/main.py", line 224, in dispatch

resp = chosen_handler.process_request(req)

File "/usr/lib/python2.4/site-packages/trac/versioncontrol/web_ui/browser.py", line 131, in process_request

self._render_directory(req, repos, node, rev)

File "/usr/lib/python2.4/site-packages/trac/versioncontrol/web_ui/browser.py", line 156, in _render_directory

changes = get_changes(self.env, repos, [irev? for i in info])

File "/usr/lib/python2.4/site-packages/trac/versioncontrol/web_ui/util.py", line 47, in get_changes

shorten=True, absurls=absurls)

File "/usr/lib/python2.4/site-packages/trac/wiki/formatter.py", line 1006, in wiki_to_oneliner

OneLinerFormatter(env, absurls, db).format(wikitext, out, shorten)

File "/usr/lib/python2.4/site-packages/trac/wiki/formatter.py", line 914, in format

result = re.sub(self.wiki.rules, self.replace, result)

File "sre.py", line 142, in sub

return _compile(pattern, 0).sub(repl, string, count)

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 5: ordinal not in range(128)

Changing the locale environment variable in apache with SetEnv to be UTF8 does not change anything in the plugin (it does change for python, though, as I had to generate the associated locale before trac could work again). So I resorted to the following hack. I'm a complete python newbie, so i don't know if this makes sense.

Jean-Baptiste

Attachments (1)

gitplugin.patch (612 bytes) - added by anonymous 11 years ago.

Download all attachments as: .zip

Change History (3)

Changed 11 years ago by anonymous

Attachment: gitplugin.patch added

comment:1 Changed 11 years ago by Herbert Valerio Riedel

Status: newassigned
Trac Release: 0.90.10

thanks, that makes actually some sense :-)

...on further investigation, it turns out there's a git-repo-config(1) variable named i18n.commitEncoding which is used to define a per-repo encoding of commit messages; thus a proper fix is to decide what to do based on its setting.

comment:2 Changed 11 years ago by Herbert Valerio Riedel

Resolution: fixed
Status: assignedclosed

(In [1380]) make Storage.read_commit() return unicode objects, based on the encoding set via i18n.commitEncoding

fixes #801

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Herbert Valerio Riedel.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.