Browse Source

[impala] Replace non utf8 encoded chars from the resultsets

Romain Rigaux 11 years ago
parent
commit
d6c869c498
1 changed files with 3 additions and 1 deletions
  1. 3 1
      apps/beeswax/src/beeswax/views.py

+ 3 - 1
apps/beeswax/src/beeswax/views.py

@@ -37,6 +37,7 @@ from desktop.lib.paginator import Paginator
 from desktop.lib.django_util import copy_query_dict, format_preserving_redirect, render
 from desktop.lib.django_util import copy_query_dict, format_preserving_redirect, render
 from desktop.lib.django_util import login_notrequired, get_desktop_uri_prefix
 from desktop.lib.django_util import login_notrequired, get_desktop_uri_prefix
 from desktop.lib.exceptions_renderable import PopupException
 from desktop.lib.exceptions_renderable import PopupException
+from desktop.lib.i18n import smart_unicode
 from desktop.models import Document
 from desktop.models import Document
 
 
 from jobsub.parameterization import find_variables
 from jobsub.parameterization import find_variables
@@ -463,7 +464,8 @@ def view_results(request, id, first_row=0):
       # TODO: use Number + list comprehension
       # TODO: use Number + list comprehension
       for row in results.rows():
       for row in results.rows():
         escaped_row = []
         escaped_row = []
-        for field in row:          
+        for field in row:
+          field = smart_unicode(field, errors='replace') # Prevent error when getting back non utf8 like charset=iso-8859-1
           if isinstance(field, (int, long, float, complex, bool)):
           if isinstance(field, (int, long, float, complex, bool)):
             escaped_field = field
             escaped_field = field
           elif field is None:
           elif field is None: