percol icon indicating copy to clipboard operation
percol copied to clipboard

Unicode parsing crashes percol

Open jsegura opened this issue 10 years ago • 0 comments

While trying to use percol with a logfile containing utf characters I'm getting the following error:

jsegura@air:~/tmp % percol i.log                                                                 [ 7:45AM]
Traceback (most recent call last):
  File "/usr/local/bin/percol", line 31, in <module>
    main()
  File "/Library/Python/2.7/site-packages/percol/cli.py", line 238, in main
    exit_code = percol.loop()
  File "/Library/Python/2.7/site-packages/percol/__init__.py", line 180, in loop
    self.view.refresh_display()
  File "/Library/Python/2.7/site-packages/percol/view.py", line 67, in refresh_display
    self.display_results()
  File "/Library/Python/2.7/site-packages/percol/view.py", line 113, in display_results
    is_marked = self.model.get_is_marked(cand_nth))
  File "/Library/Python/2.7/site-packages/percol/view.py", line 88, in display_result
    self.display_line(y, 0, line, style = line_style)
  File "/Library/Python/2.7/site-packages/percol/view.py", line 74, in display_line
    self.display.add_aligned_string(s, y_offset = y, x_offset = x, style = style, fill = True)
  File "/Library/Python/2.7/site-packages/percol/display.py", line 256, in add_aligned_string
    self.add_string(s, pos_y, pos_x, style)
  File "/Library/Python/2.7/site-packages/percol/display.py", line 282, in add_string
    self.addnstr(pos_y, pos_x, s, n if n >= 0 else self.WIDTH - pos_x, style)
  File "/Library/Python/2.7/site-packages/percol/display.py", line 305, in addnstr
    bytes_count_to_display = screen_length_to_bytes_count(s, n, self.encoding)
  File "/Library/Python/2.7/site-packages/percol/display.py", line 104, in screen_length_to_bytes_count
    char_bytes_count = len(unicode_char.encode(encoding))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xb7' in position 0: ordinal not in range(128)

File (character ·):

jsegura@air:~/tmp % cat i.log                                                                    [ 8:30AM]
[2014/06/10 13:40:17 CEST] [INFO] (cluster.func·004:1028) Recovering local server
[2014/06/10 13:40:17 CEST] [INFO] (cluster.(*ClusterConfiguration).recover:1054) No shards to recover for 1

jsegura avatar Jun 14 '14 06:06 jsegura