sql >> Database teknologi >  >> RDS >> PostgreSQL

Håndtering af Unicode-sekvenser i postgresql

\u0000 er det ene Unicode-kodepunkt, som ikke er gyldigt i en streng. Jeg ser ingen anden udvej end at rense snoren.

Siden json kun er en streng i et bestemt format, kan du bruge standard strengfunktionerne uden at bekymre dig om JSON-strukturen. Et desinficeringsmiddel på én linje til at fjerne kodepunktet ville være:

SELECT (regexp_replace(the_string::text, '\\u0000', '', 'g'))::json;

Men du kan også indsætte et hvilket som helst tegn efter din smag, hvilket ville være nyttigt, hvis nulkodepunktet bruges som en form for afgrænsning.

Bemærk også den subtile forskel mellem, hvad der er gemt i databasen, og hvordan det præsenteres for brugeren. Du kan gemme kodepunktet i en JSON-streng, men du skal forbehandle det til et andet tegn, før du behandler værdien som en json datatype.



  1. Du har ikke en implicit applikation i omfang:PlayFramework med Oracle

  2. Uafhængigt af store og små bogstaver navn på tabeller og egenskaber i Entity Framework 7

  3. Hvordan indsætter man billeder i blob i mysql-tabel kun ved hjælp af sql-syntaks (uden PHP)?

  4. Hvad skal man sige til ASYNC NETWORK IO-ventetypen?