Bij de wfs van ruimtelijkeplannen, maar eerder ook al eens bij een Klic-orïentatieverzoek stuitte ik op een probleem met karakters. In onderstaand geval toen ik de opgehaalde data direct naar een zip wilde schrijven met de ironPython zipfile module. UnicodeEncodeError: (‘unknown’, ‘\x00’, 0, 1, ‘’), maar als ik het daar omzeil door niet te zippen kom ik het probleem later weer tegen bij de ElementTree module denk ik.
Mijn poging om dit probleem op te lossen stranden bij onderstaande functie, die nog steeds de UnicodeEncodeError geeft.
def forceUnicode(value):#Python Unicode Encode Error - Stack Overflow
if type(value) == str: return unicode(value, ‘utf-8’, errors=‘ignore’)
# Ignore errors even if the string is not proper UTF-8 or has
# broken marker bytes.
# Python built-in function unicode() can do this.
else: return unicode(value)
# Assume the value object has proper unicode() method
de gebruikte serve voor dit geval: http://afnemers.ruimtelijkeplannen.nl/afnemers2012/services?REQUEST=GetFeature&service=WFS&version=2.0.0
Valt gebruik van karakters zoals \x00 binnen de INSPIRE standaard?
Heeft iemand nog een tip om ze te omzeilen?
Dit lijkt te werken:
def forceUnicode(value):#Unicode HOWTO — IronPython 2.7.2b1 documentation
value=value.encode(‘ascii’,‘xmlcharrefreplace’)# ‘ignore’)#
return value