\u0000
is het enige Unicode-codepunt dat niet geldig is in een tekenreeks. Ik zie geen andere manier dan het touwtje te ontsmetten.
Sinds json
is slechts een tekenreeks in een specifiek formaat, u kunt de standaard tekenreeksfuncties gebruiken, zonder u zorgen te maken over de JSON-structuur. Een eenregelig ontsmettingsmiddel om het codepunt te verwijderen zou zijn:
SELECT (regexp_replace(the_string::text, '\\u0000', '', 'g'))::json;
Maar u kunt ook elk willekeurig teken invoegen, wat handig zou zijn als het nulpunt wordt gebruikt als een vorm van scheidingsteken.
Let ook op het subtiele verschil tussen wat er in de database wordt opgeslagen en hoe het aan de gebruiker wordt gepresenteerd. U kunt het codepunt opslaan in een JSON-tekenreeks, maar u moet het vooraf verwerken tot een ander teken voordat u de waarde verwerkt als een json
gegevenstype.