Pannello di Controllo Moderatore ]

Python Xml.ElementTree - UnicodeDecodeError:

Creare una macro - Scrivere uno script - Usare le API

Python Xml.ElementTree - UnicodeDecodeError:

Messaggioda nickGiard » sabato 23 giugno 2018, 18:27

Buongiorno a tutti
Per chi usa Python installato su Libre Office, avviso di uno spiacevole bug che avviene quando utilizziamo il modulo xml\etree\ElementTree.py.
Se abbiamo un file xml con elementi che hanno attributi con molti caratteri, es 6.000 quali la descrizione di una Voce che contiene inoltre caratteri accentati etc., può capitare che si presenti questo errore :

File "C:\Users\Nicola\AppData\Roaming\LibreOffice\4\user\Scripts\python\MyPyFunct.py", line 1114, in _listVociDictToComputoXmlSave
etVoci = ET.XML(sDoc)
File "C:\Program Files\LibreOffice 5\program\python-core-3.5.0\lib\xml\etree\ElementTree.py", line 1344, in XML
parser.feed(text)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 2047: invalid continuation byte


Ho visto in internet che questo è un baco di alcune versioni di xml\etree\ElementTree.py , sfortunatamente inserite nelle distribuzioni di Libre Office.
Chiedo a chi ha contatti con gli sviluppatori di segnalare questo problema.
Mi sembra di aver capito che il buffer del parser xml XMLParser legga a blocchi il file binario xml codificato in UTF-8, e come sappiamo alcuni caratteri hanno più di un byte, per cui se il carattere si trova alla fine del buffer e viene tagliato, si crea l'errore che vediamo.

Per cercare una soluzione provvisoria, nel mio caso il file xml viene generato leggendo le celle di calc, entro nella cella ed aggiungo degli spazi, nella speranza che il buffer non tagli il carattere finale.
Chiedo qualche suggerimento alternativo, se disponibile.
Un cordiale saluto, sperando di essere stato utile per risparmiare ad altri la giornata di lavoro che ho impiegato per capire l'inghippo. :P :P
Nick
Nicola con LibreOffice 5.4.5 (x64) su Windows 7 Home Premium
nickGiard
 
Messaggi: 17
Iscritto il: lunedì 14 maggio 2012, 22:04

Re: Python Xml.ElementTree - UnicodeDecodeError:

Messaggioda charlie » domenica 24 giugno 2018, 7:23

nickGiard ha scritto:Chiedo a chi ha contatti con gli sviluppatori di segnalare questo problema.


I bug vanno segnalati qui https://bugs.documentfoundation.org
charlie
macOS 10.12 Sierra: Open Office 4.1.5 - LibreOffice 6.0.7
Windows 7 pro (VirtualBox): Open Office 4.1.5 - LibreOffice 5.4.4.2
Ubuntu 17.04 LTE (VirtualBox): LibreOffice 5.1.6.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 5971
Iscritto il: mercoledì 19 dicembre 2012, 11:50


Torna a Macro e UNO API

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti