Merge pull request #63 from jsdalton/fix_unicode_error_in_html_output
Fix unicode error in html output
This commit is contained in:
commit
45121ddd65
|
@ -14,6 +14,7 @@ else:
|
||||||
from tablib.packages import markup
|
from tablib.packages import markup
|
||||||
|
|
||||||
import tablib
|
import tablib
|
||||||
|
import codecs
|
||||||
|
|
||||||
BOOK_ENDINGS = 'h3'
|
BOOK_ENDINGS = 'h3'
|
||||||
|
|
||||||
|
@ -45,7 +46,9 @@ def export_set(dataset):
|
||||||
|
|
||||||
page.table.close()
|
page.table.close()
|
||||||
|
|
||||||
stream.writelines(str(page))
|
# Allow unicode characters in output
|
||||||
|
wrapper = codecs.getwriter("utf8")(stream)
|
||||||
|
wrapper.writelines(unicode(page))
|
||||||
|
|
||||||
return stream.getvalue()
|
return stream.getvalue()
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@ class element:
|
||||||
def render( self, tag, single, between, kwargs ):
|
def render( self, tag, single, between, kwargs ):
|
||||||
"""Append the actual tags to content."""
|
"""Append the actual tags to content."""
|
||||||
|
|
||||||
out = "<%s" % tag
|
out = u"<%s" % tag
|
||||||
for key, value in kwargs.iteritems( ):
|
for key, value in kwargs.iteritems( ):
|
||||||
if value is not None: # when value is None that means stuff like <... checked>
|
if value is not None: # when value is None that means stuff like <... checked>
|
||||||
key = key.strip('_') # strip this so class_ will mean class, etc.
|
key = key.strip('_') # strip this so class_ will mean class, etc.
|
||||||
|
@ -75,16 +75,16 @@ class element:
|
||||||
key = 'http-equiv'
|
key = 'http-equiv'
|
||||||
elif key == 'accept_charset':
|
elif key == 'accept_charset':
|
||||||
key = 'accept-charset'
|
key = 'accept-charset'
|
||||||
out = "%s %s=\"%s\"" % ( out, key, escape( value ) )
|
out = u"%s %s=\"%s\"" % ( out, key, escape( value ) )
|
||||||
else:
|
else:
|
||||||
out = "%s %s" % ( out, key )
|
out = u"%s %s" % ( out, key )
|
||||||
if between is not None:
|
if between is not None:
|
||||||
out = "%s>%s</%s>" % ( out, between, tag )
|
out = u"%s>%s</%s>" % ( out, between, tag )
|
||||||
else:
|
else:
|
||||||
if single:
|
if single:
|
||||||
out = "%s />" % out
|
out = u"%s />" % out
|
||||||
else:
|
else:
|
||||||
out = "%s>" % out
|
out = u"%s>" % out
|
||||||
if self.parent is not None:
|
if self.parent is not None:
|
||||||
self.parent.content.append( out )
|
self.parent.content.append( out )
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -309,7 +309,7 @@ class TablibTestCase(unittest.TestCase):
|
||||||
def test_unicode_append(self):
|
def test_unicode_append(self):
|
||||||
"""Passes in a single unicode character and exports."""
|
"""Passes in a single unicode character and exports."""
|
||||||
|
|
||||||
new_row = ('å', 'é')
|
new_row = (u'å', u'é')
|
||||||
data.append(new_row)
|
data.append(new_row)
|
||||||
|
|
||||||
data.json
|
data.json
|
||||||
|
|
Loading…
Reference in New Issue