Apenas me sucedió que al estar trabajando un sistema con JSP y PostgreSQL (v8.3) al tratar de generar y guardar un registro que tuviera un carácter latino (para ser preciso un acento [´] ), provocaba el siguiente error:
carácter 0xc293 de codificación «UTF8» no tiene equivalente en «WIN1252»
Esto era debido a la codificación de mi base de datos (se encontraba en WIN1252) por lo que tenia que cambiarla a UTF8 o bien LATIN1, busque información en google donde encontré el siguiente link que fue de gran ayuda. Basándome en la explicación del link anterior explico como cambiar la codificación desde pgAdmin II (aunque debe ser igual desde línea de comandos) , los pasos son los siguientes:
1.- Conocer los tipos de datos soportados por PostgreSQL los encontramos en: http://www.postgresql.org/docs/8.0/interactive/multibyte.html
2.- Basándonos en la tabla ejecutar el siguiente comando en la consola SQL
1: update pg_database set encoding=8 where datname='mibd';
Donde encoding se refiere al tipo de codificación en este caso el “8” corresponde a LATIN1 y datname es el nombre de nuestra base de datos a la cual le queremos cambiar la codificación (en este caso nuestra base de datos se llama mibd).
Para identificar el tipo de encoding correspondiente a su numero entero he creado la siguiente tabla:
N° de encoding
|
Name
|
Descripción
|
0
|
SQL_ASCII
|
ASCII
|
1
|
EUC_JP
|
Japanese EUC
|
2
|
EUC_CN
|
Chinese EUC
|
3
|
EUC_KR
|
Korean EUC
|
4
|
JOHAB
|
Korean EUC (Hangle base)
|
5
|
EUC_TW
|
Taiwan EUC
|
6
|
UNICODE
|
Unicode (UTF-8)
|
7
|
MULE_INTERNAL
|
Mule internal code
|
8
|
LATIN1
|
ISO 8859-1/ECMA 94 (Latin alphabet no.1)
|
9
|
LATIN2
|
ISO 8859-2/ECMA 94 (Latin alphabet no.2)
|
10
|
LATIN3
|
ISO 8859-3/ECMA 94 (Latin alphabet no.3)
|
11
|
LATIN4
|
ISO 8859-4/ECMA 94 (Latin alphabet no.4)
|
12
|
LATIN5
|
ISO 8859-9/ECMA 128 (Latin alphabet no.5)
|
13
|
LATIN6
|
ISO 8859-10/ECMA 144 (Latin alphabet no.6)
|
14
|
LATIN7
|
ISO 8859-13 (Latin alphabet no.7)
|
15
|
LATIN8
|
ISO 8859-14 (Latin alphabet no.8)
|
16
|
LATIN9
|
ISO 8859-15 (Latin alphabet no.9)
|
17
|
LATIN10
|
ISO 8859-16/ASRO SR 14111 (Latin alphabet no.10)
|
18
|
ISO_8859_5
|
ISO 8859-5/ECMA 113 (Latin/Cyrillic)
|
19
|
ISO_8859_6
|
ISO 8859-6/ECMA 114 (Latin/Arabic)
|
20
|
ISO_8859_7
|
ISO 8859-7/ECMA 118 (Latin/Greek)
|
21
|
ISO_8859_8
|
ISO 8859-8/ECMA 121 (Latin/Hebrew)
|
22
|
KOI8
|
KOI8-R(U)
|
23
|
ALT
|
Windows CP866
|
24
|
WIN874
|
Windows CP874 (Thai)
|
25
|
WIN1250
|
Windows CP1250
|
26
|
WIN
|
Windows CP1251
|
27
|
WIN1256
|
Windows CP1256 (Arabic)
|
28
|
TCVN
|
TCVN-5712/Windows CP1258 (Vietnamese)
|
Con esta tabla sabremos que numero corresponde a que codificación siendo así, por ejemplo si quisiera cambiar la codificación de mi tabla a UTF-8 tendría el siguiente código:
1: update pg_database set encoding=6 where datname='mibd';
Como pueden ver es muy sencillo espero sea de utilidad, como lo fue para mi ;).
-.-. Los comentaros son motivos para continuar con el blog .-.-
Update de utilidad: Configuración actual del sistema para no tener problemas con acentos(´) ni eñes (ñ):
PostgreSQL: LATIN1
Dreamweaver: charset=iso-8859-1

Comentarios recientes