El soporte de juegos de caracteres en PostgreSQL te permite almacenar texto en una variedad de juegos de caracteres
(también llamados codificaciones - encodings), incluidos juegos de caracteres de un solo byte como la serie ISO 8859 y juegos de caracteres de
múltiples bytes como EUC (Extended Unix Code), UTF-8 y código interno de Mule. Todos los juegos de caracteres compatibles
pueden ser utilizados de forma transparente por los clientes, pero unos pocos no son compatibles para su uso dentro del servidor (es decir,
como codificación del lado del servidor). El juego de caracteres por defecto se selecciona al inicializar el clúster de bases de datos de
PostgreSQL utilizando initdb. Se puede anular al crear una base de datos, por lo que puedes tener
múltiples bases de datos, cada una con un juego de caracteres diferente.
Sin embargo, una restricción importante es que el juego de caracteres de cada base de datos debe ser compatible con los ajustes de configuración
regional LC_CTYPE (clasificación de caracteres) y LC_COLLATE (orden de clasificación de cadenas) de la base de
datos. Para la configuración regional C o POSIX, se permite cualquier juego de caracteres, pero para otras
configuraciones regionales proporcionadas por libc hay solo un juego de caracteres que funcionará correctamente. (En Windows, sin embargo, la
codificación UTF-8 se puede utilizar con cualquier configuración regional). Si tienes configurado el soporte de ICU, las configuraciones
regionales proporcionadas por ICU se pueden utilizar con la mayoría de las codificaciones del lado del servidor, pero no con todas.
La Table 23.3 muestra los juegos de caracteres disponibles para su uso en PostgreSQL.
Table 23.3. Juegos de caracteres de PostgreSQL
| Nombre | Descripción | Idioma | ¿Servidor? | ¿ICU? | Bytes/Caráct. | Aliases |
|---|---|---|---|---|---|---|
BIG5 | Big Five | Chino tradicional | No | No | 1–2 | WIN950, Windows950 |
EUC_CN | Extended UNIX Code-CN | Chino simplificado | Sí | Sí | 1–3 | |
EUC_JP | Extended UNIX Code-JP | Japonés | Sí | Sí | 1–3 | |
EUC_JIS_2004 | Extended UNIX Code-JP, JIS X 0213 | Japonés | Sí | No | 1–3 | |
EUC_KR | Extended UNIX Code-KR | Coreano | Sí | Sí | 1–3 | |
EUC_TW | Extended UNIX Code-TW | Chino tradicional, taiwanés | Sí | Sí | 1–4 | |
GB18030 | Estándar nacional | Chino | No | No | 1–4 | |
GBK | Estándar nacional extendido | Chino simplificado | No | No | 1–2 | WIN936, Windows936 |
ISO_8859_5 | ISO 8859-5, ECMA 113 | Latino/Cirílico | Sí | Sí | 1 | |
ISO_8859_6 | ISO 8859-6, ECMA 114 | Latino/Árabe | Sí | Sí | 1 | |
ISO_8859_7 | ISO 8859-7, ECMA 118 | Latino/Griego | Sí | Sí | 1 | |
ISO_8859_8 | ISO 8859-8, ECMA 121 | Latino/Hebreo | Sí | Sí | 1 | |
JOHAB | JOHAB | Coreano (Hangul) | No | No | 1–3 | |
KOI8R | KOI8-R | Cirílico (Ruso) | Sí | Sí | 1 | KOI8 |
KOI8U | KOI8-U | Cirílico (Ucraniano) | Sí | Sí | 1 | |
LATIN1 | ISO 8859-1, ECMA 94 | Europa occidental | Sí | Sí | 1 | ISO88591 |
LATIN2 | ISO 8859-2, ECMA 94 | Europa central | Sí | Sí | 1 | ISO88592 |
LATIN3 | ISO 8859-3, ECMA 94 | Europa del sur | Sí | Sí | 1 | ISO88593 |
LATIN4 | ISO 8859-4, ECMA 94 | Europa del norte | Sí | Sí | 1 | ISO88594 |
LATIN5 | ISO 8859-9, ECMA 128 | Turco | Sí | Sí | 1 | ISO88599 |
LATIN6 | ISO 8859-10, ECMA 144 | Nórdico | Sí | Sí | 1 | ISO885910 |
LATIN7 | ISO 8859-13 | Báltico | Sí | Sí | 1 | ISO885913 |
LATIN8 | ISO 8859-14 | Celta | Sí | Sí | 1 | ISO885914 |
LATIN9 | ISO 8859-15 | LATIN1 con Euro y acentos | Sí | Sí | 1 | ISO885915 |
LATIN10 | ISO 8859-16, ASRO SR 14111 | Rumano | Sí | No | 1 | ISO885916 |
MULE_INTERNAL | Código interno de Mule | Emacs multilingüe | Sí | No | 1–4 | |
SJIS | Shift JIS | Japonés | No | No | 1–2 | Mskanji, ShiftJIS, WIN932, Windows932 |
SHIFT_JIS_2004 | Shift JIS, JIS X 0213 | Japonés | No | No | 1–2 | |
SQL_ASCII | sin especificar (ver texto) | cualquiera | Sí | No | 1 | |
UHC | Unified Hangul Code | Coreano | No | No | 1–2 | WIN949, Windows949 |
UTF8 | Unicode, 8 bits | todos | Sí | Sí | 1–4 | Unicode |
WIN866 | Windows CP866 | Cirílico | Sí | Sí | 1 | ALT |
WIN874 | Windows CP874 | Tailandés | Sí | No | 1 | |
WIN1250 | Windows CP1250 | Europa central | Sí | Sí | 1 | |
WIN1251 | Windows CP1251 | Cirílico | Sí | Sí | 1 | WIN |
WIN1252 | Windows CP1252 | Europa occidental | Sí | Sí | 1 | |
WIN1253 | Windows CP1253 | Griego | Sí | Sí | 1 | |
WIN1254 | Windows CP1254 | Turco | Sí | Sí | 1 | |
WIN1255 | Windows CP1255 | Hebreo | Sí | Sí | 1 | |
WIN1256 | Windows CP1256 | Árabe | Sí | Sí | 1 | |
WIN1257 | Windows CP1257 | Báltico | Sí | Sí | 1 | |
WIN1258 | Windows CP1258 | Vietnamita | Sí | Sí | 1 | ABC, TCVN, TCVN5712, VSCII |
No todas las API cliente admiten todos los juegos de caracteres enumerados. Por ejemplo, el controlador JDBC
de PostgreSQL no admite MULE_INTERNAL, LATIN6,
LATIN8 y LATIN10.
El ajuste SQL_ASCII se comporta de manera considerablemente diferente a los otros ajustes. Cuando el juego de
caracteres del servidor es SQL_ASCII, el servidor interpreta los valores de bytes 0–127 de acuerdo con el estándar
ASCII, mientras que los valores de bytes 128–255 se toman como caracteres no interpretados. No se realizará ninguna conversión de
codificación cuando el ajuste sea SQL_ASCII. Por lo tanto, este ajuste no es tanto una declaración de que se está
utilizando una codificación específica, sino una declaración de ignorancia sobre la codificación. En la mayoría de los casos, si estás
trabajando con datos que no son ASCII, no es prudente utilizar el ajuste SQL_ASCII porque
PostgreSQL no podrá ayudarte convirtiendo o validando caracteres que no sean ASCII.
initdb define el juego de caracteres (codificación) por defecto para un clúster de
PostgreSQL. Por ejemplo:
initdb -E EUC_JP
establece el juego de caracteres por defecto en EUC_JP (Código Unix extendido para japonés). Puedes utilizar
--encoding en lugar de -E si prefieres cadenas de opciones más largas. Si no se proporciona ninguna
opción -E o --encoding, initdb intenta determinar la codificación adecuada a utilizar
en función de la configuración regional especificada o por defecto.
Puedes especificar una codificación que no sea la por defecto al momento de la creación de la base de datos, siempre que la codificación sea compatible con la configuración regional seleccionada:
createdb -E EUC_KR -T template0 --lc-collate=ko_KR.euckr --lc-ctype=ko_KR.euckr korean
Esto creará una base de datos llamada korean que utiliza el juego de caracteres EUC_KR y la
configuración regional ko_KR. Otra forma de lograr esto es utilizar este comando SQL:
CREATE DATABASE korean WITH ENCODING 'EUC_KR' LC_COLLATE='ko_KR.euckr' LC_CTYPE='ko_KR.euckr' TEMPLATE=template0;
Ten en cuenta que los comandos anteriores especifican la copia de la base de datos template0. Al copiar cualquier otra
base de datos, los ajustes de codificación y configuración regional no se pueden cambiar con respecto a los de la base de datos de origen,
porque eso podría provocar la corrupción de los datos. Para más información, consulta la Section 22.3.
La codificación de una base de datos se almacena en el catálogo del sistema pg_database. Puedes verla utilizando la
opción -l de psql o el comando \l.
$ psql -l
List of databases
Name | Owner | Encoding | Collation | Ctype | Access Privileges
-----------+----------+-----------+-------------+-------------+-------------------------------------
clocaledb | hlinnaka | SQL_ASCII | C | C |
englishdb | hlinnaka | UTF8 | en_GB.UTF8 | en_GB.UTF8 |
japanese | hlinnaka | UTF8 | ja_JP.UTF8 | ja_JP.UTF8 |
korean | hlinnaka | EUC_KR | ko_KR.euckr | ko_KR.euckr |
postgres | hlinnaka | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 |
template0 | hlinnaka | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | {=c/hlinnaka,hlinnaka=CTc/hlinnaka}
template1 | hlinnaka | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | {=c/hlinnaka,hlinnaka=CTc/hlinnaka}
(7 rows)
En la mayoría de los sistemas operativos modernos, PostgreSQL puede determinar qué juego de caracteres está implícito
en el ajuste LC_CTYPE, y obligará a que solo se utilice la codificación de base de datos coincidente. En los sistemas más
antiguos es tu responsabilidad asegurarte de utilizar la codificación esperada por la configuración regional que has seleccionado. Un error en
esta área probablemente provocará un comportamiento extraño de las operaciones dependientes de la configuración regional, como la ordenación.
PostgreSQL permitirá a los superusuarios crear bases de datos con la codificación SQL_ASCII
incluso cuando LC_CTYPE no sea C o POSIX. Como se señaló anteriormente,
SQL_ASCII no obliga a que los datos almacenados en la base de datos tengan ninguna codificación en particular, por lo que esta
elección plantea riesgos de mal comportamiento dependiente de la configuración regional. El uso de esta combinación de ajustes está
obsoleto y podría prohibirse por completo algún día.
PostgreSQL admite la conversión automática de juegos de caracteres entre el servidor y el cliente para muchas combinaciones de juegos de caracteres (la Section 23.3.4 muestra cuáles).
Para habilitar la conversión automática de juegos de caracteres, debes indicarle a PostgreSQL el juego de caracteres (codificación) que deseas utilizar en el cliente. Existen varias formas de lograr esto:
Utilizar el comando \encoding en psql. \encoding te permite cambiar la
codificación del cliente sobre la marcha. Por ejemplo, para cambiar la codificación a SJIS, escribe:
\encoding SJIS
libpq (Section 32.11) tiene funciones para controlar la codificación del cliente.
Utilizar SET client_encoding TO. El establecimiento de la codificación del cliente se puede realizar con este comando SQL:
SET CLIENT_ENCODING TO 'value';
También puedes utilizar la sintaxis SQL estándar SET NAMES para este propósito:
SET NAMES 'value';
Para consultar la codificación actual del cliente:
SHOW client_encoding;
Para volver a la codificación por defecto:
RESET client_encoding;
Utilizar PGCLIENTENCODING. Si la variable de entorno PGCLIENTENCODING está definida en el entorno del
cliente, esa codificación del cliente se selecciona automáticamente cuando se realiza una conexión con el servidor. (Esto puede ser anulado
posteriormente utilizando cualquiera de los otros métodos mencionados anteriormente).
Utilizar la variable de configuración client_encoding. Si la variable client_encoding está
establecida, esa codificación del cliente se selecciona automáticamente cuando se realiza una conexión con el servidor. (Esto puede ser
anulado posteriormente utilizando cualquiera de los otros métodos mencionados anteriormente).
Si la conversión de un carácter en particular no es posible — supongamos que elegiste EUC_JP para el servidor y
LATIN1 para el cliente, y se devuelven algunos caracteres japoneses que no tienen representación en LATIN1
— se reporta un error.
Si el juego de caracteres del cliente se define como SQL_ASCII, se desactiva la conversión de codificación,
independientemente del juego de caracteres del servidor. (Sin embargo, si el juego de caracteres del servidor no es SQL_ASCII,
el servidor seguirá verificando que los datos entrantes sean válidos para esa codificación; por lo que el efecto neto es como si el juego de
caracteres del cliente fuera el mismo que el del servidor). Al igual que para el servidor, el uso de SQL_ASCII no es sabio
a menos que estés trabajando con datos que sean todos ASCII.
PostgreSQL permite la conversión entre dos juegos de caracteres cualesquiera para los cuales se liste una función
de conversión en el catálogo del sistema pg_conversion.
PostgreSQL viene con algunas conversiones predefinidas, como se resume en la Table 23.4 y se muestra con más detalle en la Table 23.5. Puedes crear una
nueva conversión utilizando el comando SQL CREATE CONVERSION. (Para ser utilizada en conversiones automáticas
cliente/servidor, una conversión debe estar marcada como “default” para su par de juegos de caracteres).
Table 23.4. Conversiones integradas de juegos de caracteres cliente/servidor
| Juego de caracteres del servidor | Juegos de caracteres del cliente disponibles |
|---|---|
BIG5 | no admitido como codificación de servidor |
EUC_CN | EUC_CN,
MULE_INTERNAL,
UTF8
|
EUC_JP | EUC_JP,
MULE_INTERNAL,
SJIS,
UTF8
|
EUC_JIS_2004 | EUC_JIS_2004,
SHIFT_JIS_2004,
UTF8
|
EUC_KR | EUC_KR,
MULE_INTERNAL,
UTF8
|
EUC_TW | EUC_TW,
BIG5,
MULE_INTERNAL,
UTF8
|
GB18030 | no admitido como codificación de servidor |
GBK | no admitido como codificación de servidor |
ISO_8859_5 | ISO_8859_5,
KOI8R,
MULE_INTERNAL,
UTF8,
WIN866,
WIN1251
|
ISO_8859_6 | ISO_8859_6,
UTF8
|
ISO_8859_7 | ISO_8859_7,
UTF8
|
ISO_8859_8 | ISO_8859_8,
UTF8
|
JOHAB | no admitido como codificación de servidor |
KOI8R | KOI8R,
ISO_8859_5,
MULE_INTERNAL,
UTF8,
WIN866,
WIN1251
|
KOI8U | KOI8U,
UTF8
|
LATIN1 | LATIN1,
MULE_INTERNAL,
UTF8
|
LATIN2 | LATIN2,
MULE_INTERNAL,
UTF8,
WIN1250
|
LATIN3 | LATIN3,
MULE_INTERNAL,
UTF8
|
LATIN4 | LATIN4,
MULE_INTERNAL,
UTF8
|
LATIN5 | LATIN5,
UTF8
|
LATIN6 | LATIN6,
UTF8
|
LATIN7 | LATIN7,
UTF8
|
LATIN8 | LATIN8,
UTF8
|
LATIN9 | LATIN9,
UTF8
|
LATIN10 | LATIN10,
UTF8
|
MULE_INTERNAL | MULE_INTERNAL,
BIG5,
EUC_CN,
EUC_JP,
EUC_KR,
EUC_TW,
ISO_8859_5,
KOI8R,
LATIN1 a LATIN4,
SJIS,
WIN866,
WIN1250,
WIN1251
|
SJIS | no admitido como codificación de servidor |
SHIFT_JIS_2004 | no admitido como codificación de servidor |
SQL_ASCII | cualquiera (no se realizará ninguna conversión) |
UHC | no admitido como codificación de servidor |
UTF8 | todas las codificaciones admitidas |
WIN866 | WIN866,
ISO_8859_5,
KOI8R,
MULE_INTERNAL,
UTF8,
WIN1251
|
WIN874 | WIN874,
UTF8
|
WIN1250 | WIN1250,
LATIN2,
MULE_INTERNAL,
UTF8
|
WIN1251 | WIN1251,
ISO_8859_5,
KOI8R,
MULE_INTERNAL,
UTF8,
WIN866
|
WIN1252 | WIN1252,
UTF8
|
WIN1253 | WIN1253,
UTF8
|
WIN1254 | WIN1254,
UTF8
|
WIN1255 | WIN1255,
UTF8
|
WIN1256 | WIN1256,
UTF8
|
WIN1257 | WIN1257,
UTF8
|
WIN1258 | WIN1258,
UTF8
|
Table 23.5. Todas las conversiones integradas de juegos de caracteres
| Nombre de la conversión [a] | Codificación de origen | Codificación de destino |
|---|---|---|
big5_to_euc_tw | BIG5 | EUC_TW |
big5_to_mic | BIG5 | MULE_INTERNAL |
big5_to_utf8 | BIG5 | UTF8 |
euc_cn_to_mic | EUC_CN | MULE_INTERNAL |
euc_cn_to_utf8 | EUC_CN | UTF8 |
euc_jp_to_mic | EUC_JP | MULE_INTERNAL |
euc_jp_to_sjis | EUC_JP | SJIS |
euc_jp_to_utf8 | EUC_JP | UTF8 |
euc_kr_to_mic | EUC_KR | MULE_INTERNAL |
euc_kr_to_utf8 | EUC_KR | UTF8 |
euc_tw_to_big5 | EUC_TW | BIG5 |
euc_tw_to_mic | EUC_TW | MULE_INTERNAL |
euc_tw_to_utf8 | EUC_TW | UTF8 |
gb18030_to_utf8 | GB18030 | UTF8 |
gbk_to_utf8 | GBK | UTF8 |
iso_8859_10_to_utf8 | LATIN6 | UTF8 |
iso_8859_13_to_utf8 | LATIN7 | UTF8 |
iso_8859_14_to_utf8 | LATIN8 | UTF8 |
iso_8859_15_to_utf8 | LATIN9 | UTF8 |
iso_8859_16_to_utf8 | LATIN10 | UTF8 |
iso_8859_1_to_mic | LATIN1 | MULE_INTERNAL |
iso_8859_1_to_utf8 | LATIN1 | UTF8 |
iso_8859_2_to_mic | LATIN2 | MULE_INTERNAL |
iso_8859_2_to_utf8 | LATIN2 | UTF8 |
iso_8859_2_to_windows_1250 | LATIN2 | WIN1250 |
iso_8859_3_to_mic | LATIN3 | MULE_INTERNAL |
iso_8859_3_to_utf8 | LATIN3 | UTF8 |
iso_8859_4_to_mic | LATIN4 | MULE_INTERNAL |
iso_8859_4_to_utf8 | LATIN4 | UTF8 |
iso_8859_5_to_koi8_r | ISO_8859_5 | KOI8R |
iso_8859_5_to_mic | ISO_8859_5 | MULE_INTERNAL |
iso_8859_5_to_utf8 | ISO_8859_5 | UTF8 |
iso_8859_5_to_windows_1251 | ISO_8859_5 | WIN1251 |
iso_8859_5_to_windows_866 | ISO_8859_5 | WIN866 |
iso_8859_6_to_utf8 | ISO_8859_6 | UTF8 |
iso_8859_7_to_utf8 | ISO_8859_7 | UTF8 |
iso_8859_8_to_utf8 | ISO_8859_8 | UTF8 |
iso_8859_9_to_utf8 | LATIN5 | UTF8 |
johab_to_utf8 | JOHAB | UTF8 |
koi8_r_to_iso_8859_5 | KOI8R | ISO_8859_5 |
koi8_r_to_mic | KOI8R | MULE_INTERNAL |
koi8_r_to_utf8 | KOI8R | UTF8 |
koi8_r_to_windows_1251 | KOI8R | WIN1251 |
koi8_r_to_windows_866 | KOI8R | WIN866 |
koi8_u_to_utf8 | KOI8U | UTF8 |
mic_to_big5 | MULE_INTERNAL | BIG5 |
mic_to_euc_cn | MULE_INTERNAL | EUC_CN |
mic_to_euc_jp | MULE_INTERNAL | EUC_JP |
mic_to_euc_kr | MULE_INTERNAL | EUC_KR |
mic_to_euc_tw | MULE_INTERNAL | EUC_TW |
mic_to_iso_8859_1 | MULE_INTERNAL | LATIN1 |
mic_to_iso_8859_2 | MULE_INTERNAL | LATIN2 |
mic_to_iso_8859_3 | MULE_INTERNAL | LATIN3 |
mic_to_iso_8859_4 | MULE_INTERNAL | LATIN4 |
mic_to_iso_8859_5 | MULE_INTERNAL | ISO_8859_5 |
mic_to_koi8_r | MULE_INTERNAL | KOI8R |
mic_to_sjis | MULE_INTERNAL | SJIS |
mic_to_windows_1250 | MULE_INTERNAL | WIN1250 |
mic_to_windows_1251 | MULE_INTERNAL | WIN1251 |
mic_to_windows_866 | MULE_INTERNAL | WIN866 |
sjis_to_euc_jp | SJIS | EUC_JP |
sjis_to_mic | SJIS | MULE_INTERNAL |
sjis_to_utf8 | SJIS | UTF8 |
windows_1258_to_utf8 | WIN1258 | UTF8 |
uhc_to_utf8 | UHC | UTF8 |
utf8_to_big5 | UTF8 | BIG5 |
utf8_to_euc_cn | UTF8 | EUC_CN |
utf8_to_euc_jp | UTF8 | EUC_JP |
utf8_to_euc_kr | UTF8 | EUC_KR |
utf8_to_euc_tw | UTF8 | EUC_TW |
utf8_to_gb18030 | UTF8 | GB18030 |
utf8_to_gbk | UTF8 | GBK |
utf8_to_iso_8859_1 | UTF8 | LATIN1 |
utf8_to_iso_8859_10 | UTF8 | LATIN6 |
utf8_to_iso_8859_13 | UTF8 | LATIN7 |
utf8_to_iso_8859_14 | UTF8 | LATIN8 |
utf8_to_iso_8859_15 | UTF8 | LATIN9 |
utf8_to_iso_8859_16 | UTF8 | LATIN10 |
utf8_to_iso_8859_2 | UTF8 | LATIN2 |
utf8_to_iso_8859_3 | UTF8 | LATIN3 |
utf8_to_iso_8859_4 | UTF8 | LATIN4 |
utf8_to_iso_8859_5 | UTF8 | ISO_8859_5 |
utf8_to_iso_8859_6 | UTF8 | ISO_8859_6 |
utf8_to_iso_8859_7 | UTF8 | ISO_8859_7 |
utf8_to_iso_8859_8 | UTF8 | ISO_8859_8 |
utf8_to_iso_8859_9 | UTF8 | LATIN5 |
utf8_to_johab | UTF8 | JOHAB |
utf8_to_koi8_r | UTF8 | KOI8R |
utf8_to_koi8_u | UTF8 | KOI8U |
utf8_to_sjis | UTF8 | SJIS |
utf8_to_windows_1258 | UTF8 | WIN1258 |
utf8_to_uhc | UTF8 | UHC |
utf8_to_windows_1250 | UTF8 | WIN1250 |
utf8_to_windows_1251 | UTF8 | WIN1251 |
utf8_to_windows_1252 | UTF8 | WIN1252 |
utf8_to_windows_1253 | UTF8 | WIN1253 |
utf8_to_windows_1254 | UTF8 | WIN1254 |
utf8_to_windows_1255 | UTF8 | WIN1255 |
utf8_to_windows_1256 | UTF8 | WIN1256 |
utf8_to_windows_1257 | UTF8 | WIN1257 |
utf8_to_windows_866 | UTF8 | WIN866 |
utf8_to_windows_874 | UTF8 | WIN874 |
windows_1250_to_iso_8859_2 | WIN1250 | LATIN2 |
windows_1250_to_mic | WIN1250 | MULE_INTERNAL |
windows_1250_to_utf8 | WIN1250 | UTF8 |
windows_1251_to_iso_8859_5 | WIN1251 | ISO_8859_5 |
windows_1251_to_koi8_r | WIN1251 | KOI8R |
windows_1251_to_mic | WIN1251 | MULE_INTERNAL |
windows_1251_to_utf8 | WIN1251 | UTF8 |
windows_1251_to_windows_866 | WIN1251 | WIN866 |
windows_1252_to_utf8 | WIN1252 | UTF8 |
windows_1256_to_utf8 | WIN1256 | UTF8 |
windows_866_to_iso_8859_5 | WIN866 | ISO_8859_5 |
windows_866_to_koi8_r | WIN866 | KOI8R |
windows_866_to_mic | WIN866 | MULE_INTERNAL |
windows_866_to_utf8 | WIN866 | UTF8 |
windows_866_to_windows_1251 | WIN866 | WIN |
windows_874_to_utf8 | WIN874 | UTF8 |
euc_jis_2004_to_utf8 | EUC_JIS_2004 | UTF8 |
utf8_to_euc_jis_2004 | UTF8 | EUC_JIS_2004 |
shift_jis_2004_to_utf8 | SHIFT_JIS_2004 | UTF8 |
utf8_to_shift_jis_2004 | UTF8 | SHIFT_JIS_2004 |
euc_jis_2004_to_shift_jis_2004 | EUC_JIS_2004 | SHIFT_JIS_2004 |
shift_jis_2004_to_euc_jis_2004 | SHIFT_JIS_2004 | EUC_JIS_2004 |
[a]
Los nombres de conversión siguen un esquema de nomenclatura estándar: El nombre oficial de la codificación de
origen con todos los caracteres no alfanuméricos reemplazados por guiones bajos, seguido de | ||
Estas son buenas fuentes para comenzar a aprender sobre varios tipos de sistemas de codificación.
Contiene explicaciones detalladas de EUC_JP, EUC_CN, EUC_KR
y EUC_TW.
El sitio web del Consorcio Unicode.
Aquí se define UTF-8 (formato de transformación de Unicode/UCS de 8 bits).