Re: Codificación UTF8

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Jose Maria Mencia Fernandez <jmencia(at)alimarket(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Codificación UTF8
Date: 2006-06-20 13:32:35
Message-ID: 20060620133234.GJ26882@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Jose Maria Mencia Fernandez escribió:
> Perdonen mi ignorancia en el mundo de los juegos de caracteres y su
> definición en un sistema Postgresql. Tengo una base de datos Postgresql
> en SO Debian creada con encoding=UTF8. Utilizo el cliente psql también
> en SO Debian, desde el cual crero y manipulo los objetos de la base de
> datos.
> Pues bien, al hacer un:
> COMMENT ON TABLE mitabla IS 'Cualquier palabra con tildes y eñes';
> me da el error siguiente:
> ERROR: se detect? una secuencia de bytes UTF-8 no v?lidos cerca del
> byte 0xf3
>
> Compruebo que server_encoding es UTF8 y que client_encoding es UTF8.
> He realizado la misma prueba con client_encoding = 'LATIN9' desde psql y
> añade el comentario en la tabla sin problemas.

Obvio :-)

> ¿Qué relación debe cumplirse entre el encoding del cliente y el del
> servidor? ¿No deben ser la misma?

No! La codificacion del servidor puede ser cualquier cosa. Sea LATIN1,
LATIN9, UTF-8, u otro. Lo unico que importa es que pueda almacenar los
caracteres que tu quieras ingresar. Tambien podria ser, por ej., SJIS,
pero probablemente eso no te serviria para almacenar ñ ni á ni ¿.

La codificacion del cliente debe ser la codificacion del cliente. En
este caso creo que seria el terminal (xterm o lo que sea). El terminal
esta configurado para emitir caracteres en una codificacion determinada
-- esa misma es la que debes indicarle a Postgres que use.

Basicamente en Postgres lo que sucede es que le dices al sistema "mi
cliente esta usando codificacion X". Entonces Postgres sabe que, dado
que tiene codificacion de servidor Y, para poder almacenar los datos
tiene que:
1. hacer reconversion de X a Y, si X != Y, o bien
2. dejar el string tal cual, si X = Y.

Capici?

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Daniel Carrero 2006-06-20 13:34:54 Re: modelado de datos
Previous Message Mario Gonzalez 2006-06-20 13:30:42 Re: configurar postgres8.1en windowspoder conectarme atravez de internet