sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Estos caracteres son válidos para XML?

tl;dr No, no son válidos, lo que sea que hizo la codificación tiene errores o se le dijo información de codificación incorrecta sobre la entrada.

55357 y 56842 son 0xD83D y 0xDE0A en hexadecimal respectivamente.

En Unicode están en rangos llamados "Suplente alto" y "Suplente bajo" respectivamente.

Eso significa que son no puntos de código Unicode adecuados, sino que se utilizan en UTF-16 para construir un único valor Unicode que no encaja en 16 bits (es decir, el plano multilingüe básico).

Estos dos valores específicos se decodifican en U+1F60A CARA SONRIENTE CON OJOS SONRIENTES . La entidad HTML decimal correcta para eso sería 😊 .

La razón más probable de esto es que alguna transformación que no conoce UTF-16 o pensamiento este texto no es UTF-16 hizo la codificación (pero debería haber detectado que esos valores no son válidos e informar un error incluso en ese caso).