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

¿Cómo convertir cadenas a Unicode usando PostgreSQL?

Las bases de datos PostgreSQL tienen un tipo de carácter nativo, la "codificación de servidor". Suele ser utf-8.

Todo el texto está en esta codificación. El texto de codificación mixta no es compatible, excepto si se almacena como bytea (es decir, como secuencias de bytes opacas).

No puede almacenar cadenas "unicode" o "no unicode", y PostgreSQL no tiene el concepto de "varchar" frente a "nvarchar". Con utf-8, los caracteres que caen en el rango ASCII de 7 bits (y algunos otros) se almacenan como un solo byte, y los caracteres más anchos requieren más almacenamiento, por lo que es automático. utf-8 requiere más almacenamiento que ucs-2 o utf-16 para el texto que tiene todos los caracteres "anchos", pero menos para el texto que es una mezcla.

PostgreSQL convierte automáticamente a/desde la codificación de texto del cliente, utilizando client_encoding ajuste. No hay necesidad de convertir explícitamente.

Si su cliente es "Unicode" (que los productos de Microsoft suelen decir cuando se refieren a UCS-2 o UTF-16), la mayoría de los controladores de cliente se encargan de cualquier conversión utf-8 <--> utf-16 por usted.

Por lo tanto, no debería preocuparse, siempre que su cliente realice operaciones de E/S con las opciones de juego de caracteres correctas y establezca una client_encoding correcta. que coincida con los datos que realmente envía por cable. (Esto es automático con la mayoría de los controladores de cliente como PgJDBC, nPgSQL o el controlador Unicode psqlODBC).

Ver: