[Zope3-dev] zope.tal.xmlparser.XMLParser() dislikes unicode

Bernd Dorn zope-mailinglist at mopa.at
Sun Jan 14 04:48:06 EST 2007


On 13.01.2007, at 18:49, Andreas Jung wrote:

> Hi,
>
> the XMLParser.parseString() method  raises an exception
>
>  File "/opt/python-2.4.4/lib/python2.4/unittest.py", line 260, in run
>    testMethod()
>  File "/Users/ajung_data/sandboxes/Zope/Zope/lib/python/zope/tal/=20
> tests/test_xmlparser.py", line 127, in test_xx
>    self._run_check(xml, ())
>  File "/Users/ajung_data/sandboxes/Zope/Zope/lib/python/zope/tal/=20
> tests/test_xmlparser.py", line 106, in _run_check
>    parser.parseString(source)
>  File "/Users/ajung_data/sandboxes/Zope/Zope/lib/python/zope/tal/=20
> xmlparser.py", line 77, in parseString
>    self.parser.Parse(s, 1)
> UnicodeEncodeError: 'ascii' codec can't encode characters in =20
> position 43-48: ordinal not in range(128)
>
> if the string to be parsed is a unicode strings and contains some =20
> non-ascii
> chars. The following snippet from a private unittest =20
> (test_xmlparsers.py)
> shows the error.
>
>    def test_xx(self):
>        xml =3D unicode('<?xml version=3D"1.0" encoding=3D"utf-8"?=20
> ><foo>=C3=BC=C3=B6=C3=A4</foo>', 'iso-8859-15')
>        self._run_check(xml, ())
>
> I am not sure if this behavior is intentional?! Is the XMLParser =20
> supposed
> to deal with unicode strings or will it only accept a standard =20
> Python string? A workaround inside parseString() would to check for =20=

> unicode
> and convert the string on-the-fly to a Python string with utf-8 =20
> encoding.
> This is possibly a limitation of the underlying Expat parser...any =20
> recommendation how to deal with this issue?

IMHO it should only accept strings, because in the value should be a =20
xml string and therefore always has to be encoded in 'utf-8' or in =20
the encoding specified in the processing instruction.

Bernd

>
> Andras
>
>
>
>
> _______________________________________________
> Zope3-dev mailing list
> Zope3-dev at zope.org
> Unsub: http://mail.zope.org/mailman/options/zope3-dev/zope-=20
> mailinglist%40mopa.at
>



More information about the Zope3-dev mailing list