ckan / ckanext-dcat

CKAN ♥ DCAT
164 stars 142 forks source link

Catalog.xml UnicodeEncodeError #223

Closed thorge closed 1 year ago

thorge commented 2 years ago

An error occurs when retrieving the catalog with a search term using the q parameter that contains special characters.

 File '/data/ckan/env/default/src/ckanext-dcat/ckanext/dcat/logic.py', line 41 in dcat_catalog_show
   pagination_info = _pagination_info(query, data_dict)
 File '/data/ckan/env/default/src/ckanext-dcat/ckanext/dcat/logic.py', line 185 in _pagination_info
   pagination_info['current'] = _page_url(page)
 File '/data/ckan/env/default/src/ckanext-dcat/ckanext/dcat/logic.py', line 156 in _page_url
   qs = '&'.join(['{0}={1}'.format(p[0], p[1]) for p in params])
 UnicodeEncodeError: 'ascii' codec can't encode character u'\\xe4' in position 7: ordinal not in range(128)

The error occurs only if corresponding records with special characters are found, but not for search terms with special characters without hits.

Examples: Not working: https://opendata.schleswig-holstein.de/catalog.xml?q=badegew%C3%A4sser Working: https://opendata.schleswig-holstein.de/catalog.xml?q=f%C3%A4sser (no hits) Working: https://opendata.schleswig-holstein.de/catalog.xml?q=badegewaesser

Not working: https://data.gov.ie/catalog.xml?q=D%C3%BAn Working: https://data.gov.ie/catalog.xml?q=Dun