Page MenuHomePhabricator

Wikibase complains about Malformed input when input contains \u2028 line break character
Closed, InvalidPublicBUG REPORT

Description

Steps to reproduce:

  1. Use the pywikibot to create a new entity in the wikibase
  2. Add a string which contain unicode characters (Slovakian in this case) ex:
..
..
..
claim = pywikibot.Claim(wikibase_repo, "P836", datatype='monolingualtext')
                        target = pywikibot.WbMonolingualText(
                            text=operation_summary.replace("\n", "").replace("\t", "").lstrip().rstrip(),
                            language='sk')
                        claim.setTarget(target)
                        new_claims.append(claim.toJSON())

data['claims'] = new_claims
wikibase_item.editEntity(data)

[messages: [{'name': 'wikibase-validator-malformed-value', 'parameters': ['V\xa0súčasností DPB disponuje približne 712 ks vozidlami mestskej hromadnej dopravy, z\xa0toho 135 električkami, 120 trolejbusmi a\xa0457 autobusmi. \xa0Cieľ DPB rozširovať ekologickú MHD, napĺňa rozličnými postupmi a\xa0to: obnovou vozového parku električiek, trolejbusov a\xa0v\xa0rámci tohto projektu budovaním vozového parku elektrobusov.\xa0 Takto sa podieľa na vývoji a\xa0zlepšovaní ekologicky priaznivých, vrátane nízkouhlíkových dopravných systémov, čím zabezpečuje zvyšovanie atraktivity a\xa0konkurencieschopnosti verejnej osobnej dopravy. Očakávaným výsledkom IROP je okrem iného:zmena deľby prepravnej práce v prospech ekologicky priaznivejších módov dopravy,zníženie znečistenia ovzdušia (PM, NO, O, CO). \u2028Hlavným cieľom projektu je zvyšovanie atraktivity a\xa0konkurencieschoponosti verejnej osobnej dopravy v\xa0meste BratislavaCiele, resp. prínosy implementácie elektrobusov, ktoré napĺňajú výsledky IROP sú nasledovné:\xa0zníženie emisií pri prevádzke autobusových liniek v\xa0environmentálne zaťažených mestských častiach a\xa0rovnako aj v\xa0relaxačných zónachzníženie hlukovej záťaže (vzhľadom na počet nakupovaných elektrobusov je tento ukazovateľ zatiaľ nepreukazný)využitie moderného a perspektívneho spôsobu hromadnej dopravy osôbzníženie energetickej náročnosti aj vplyvom možnosti rekuperácie energie pri brzdenípozitívna prezentácia DPB, a.s. a Hlavného mesta SR.zvýšená kultúra cestovania v\xa0nehlučnom a\xa0k\xa0prírode šetrnom autobuse.'], 'html': {'*': 'Malformed input: V súčasností DPB disponuje približne 712 ks vozidlami mestskej hromadnej dopravy, z toho 135 električkami, 120 trolejbusmi a 457 autobusmi.  Cieľ DPB rozširovať ekologickú MHD, napĺňa rozličnými postupmi a to: obnovou vozového parku električiek, trolejbusov a v rámci tohto projektu budovaním vozového parku elektrobusov.  Takto sa podieľa na vývoji a zlepšovaní ekologicky priaznivých, vrátane nízkouhlíkových dopravných systémov, čím zabezpečuje zvyšovanie atraktivity a konkurencieschopnosti verejnej osobnej dopravy. Očakávaným výsledkom IROP je okrem iného:zmena deľby prepravnej práce v prospech ekologicky priaznivejších módov dopravy,zníženie znečistenia ovzdušia (PM, NO, O, CO). \u2028Hlavným cieľom projektu je zvyšovanie atraktivity a konkurencieschoponosti verejnej osobnej dopravy v meste BratislavaCiele, resp. prínosy implementácie elektrobusov, ktoré napĺňajú výsledky IROP sú nasledovné: zníženie emisií pri prevádzke autobusových liniek v environmentálne zaťažených mestských častiach a rovnako aj v relaxačných zónachzníženie hlukovej záťaže (vzhľadom na počet nakupovaných elektrobusov je tento ukazovateľ zatiaľ nepreukazný)využitie moderného a perspektívneho spôsobu hromadnej dopravy osôbzníženie energetickej náročnosti aj vplyvom možnosti rekuperácie energie pri brzdenípozitívna prezentácia DPB, a.s. a Hlavného mesta SR.zvýšená kultúra cestovania v nehlučnom a k prírode šetrnom autobuse.'}}];

What happens?:

the API fails to append the new statement with the given malformed string.

What should have happened instead?:

In some other cases it works fine and the API accepts the incoming strings.

Software version (if not a Wikimedia wiki), browser information, screenshots, other information, etc:

We are using a wikibase with version "wikibase/wikibase:1.35-bundle"

Event Timeline

I pointed out the character on which the API is complaining and it's this "\u2028H".

AlyHdr renamed this task from Wikibase: modification-failed Malformed input - characters from eastern European countries like Slovakian Romanian..etc to Wikibase: modification-failed Malformed input - unicode characters from eastern European countries like Slovakian Romanian..etc.Sep 15 2021, 11:31 AM
Aklapper changed the task status from Open to Stalled.Sep 15 2021, 12:07 PM

@AlyHdr: Hi, I don't see a bug here, and I don't see what makes you think that this has something to do with the human language the text is written in.
Does this problem still happen if you remove that line separator \u2028 character from your input, plus if you replace all \xa0 with "normal" whitespaces?

Aklapper renamed this task from Wikibase: modification-failed Malformed input - unicode characters from eastern European countries like Slovakian Romanian..etc to Wikibase complains about Malformed input when input contains \u2028 line break character.Sep 15 2021, 12:09 PM

@Aklapper Hi yes it works if I remove \u2028, the problem is that the string contains line separator but it's not recognised as \n . Thanks anyway for your reply, I will close this issue!