O suporte a conjunto de caracteres no
PostgreSQL permite que se armazene texto
em uma variedade de conjuntos de caracteres (também chamados de
codificações), incluindo conjuntos de caracteres de um único byte,
como a série ISO 8859, e conjuntos de caracteres de múltiplos bytes,
como o EUC (Código Unix Estendido), o UTF-8 e o código interno
MULE.
Todos os conjuntos de caracteres com suporte podem ser usados de
forma transparente pelos clientes, mas alguns não são têm suporte
para uso no servidor (isto é, como uma codificação do lado servidor).
O conjunto de caracteres padrão é selecionado ao inicializar a
instância do PostgreSQL usando o
utilitário initdb.
O conjunto de caracteres pode ser alterado quando se cria um banco
de dados, para que se possa ter vários bancos de dados, cada um com
um conjunto de caracteres diferente.
Entretanto, uma restrição importante é que o conjunto de caracteres
de cada banco de dados deve ser compatível com as configurações de
localidade LC_CTYPE (classificação dos caracteres) e
LC_COLLATE (ordem de classificação de cadeia de
caracteres) do banco de dados.
Para as localidades C e POSIX
qualquer conjunto de caracteres é permitido, mas para outras
localidades fornecidas pela libc
há apenas um conjunto de caracteres que funciona corretamente.
(No Windows, entretanto,
a codificação UTF-8 pode ser usada com qualquer localidade.)
Se houver suporte ao ICU configurado,
os locais fornecidos pelo ICU poderão
ser usados com a maioria, mas não com todas as codificações do
lado servidor.
A Tabela 23.3 mostra os conjuntos de caracteres disponíveis para uso no PostgreSQL.
Tabela 23.3. Conjuntos de caracteres no PostgreSQL
| Nome | Descrição | Idioma | Servidor? | ICU? | Bytes/Char | Aliases |
|---|---|---|---|---|---|---|
BIG5 | Big Five | Chinês tradicional | Não | Não | 1–2 | WIN950, Windows950 |
EUC_CN | Código-CN UNIX estendido | Chinês simplificado | Sim | Sim | 1–3 | |
EUC_JP | Código-JP UNIX estendido | Japonês | Sim | Sim | 1–3 | |
EUC_JIS_2004 | Código-JP UNIX estendido, JIS X 0213 | Japonês | Sim | Não | 1–3 | |
EUC_KR | Código-KR UNIX estendido | Coreano | Sim | Sim | 1–3 | |
EUC_TW | Código-TW UNIX estendido | Chinês tradicional, Taiwanês | Sim | Sim | 1–4 | |
GB18030 | Padrão nacional | Chinês | Não | Não | 1–4 | |
GBK | >Padrão nacional estendido | Chinês simplificado | Não | Não | 1–2 | WIN936, Windows936 |
ISO_8859_5 | ISO 8859-5, ECMA 113 | Latino/Cirílico | Sim | Sim | 1 | |
ISO_8859_6 | ISO 8859-6, ECMA 114 | Latino/Arábico | Sim | Sim | 1 | |
ISO_8859_7 | ISO 8859-7, ECMA 118 | Latino/Grego | Sim | Sim | 1 | |
ISO_8859_8 | ISO 8859-8, ECMA 121 | Latino/Hebraico | Sim | Sim | 1 | |
JOHAB | JOHAB | Coreano (Hangul) | Não | Não | 1–3 | |
KOI8R | KOI8-R | Cirílico (Russo) | Sim | Sim | 1 | KOI8 |
KOI8U | KOI8-U | Cirílico (Ucraniano) | Sim | Sim | 1 | |
LATIN1 | ISO 8859-1, ECMA 94 | Europa ocidental | Sim | Sim | 1 | ISO88591 |
LATIN2 | ISO 8859-2, ECMA 94 | Europa central | Sim | Sim | 1 | ISO88592 |
LATIN3 | ISO 8859-3, ECMA 94 | Sul da Europa | Sim | Sim | 1 | ISO88593 |
LATIN4 | ISO 8859-4, ECMA 94 | Norte da Europa | Sim | Sim | 1 | ISO88594 |
LATIN5 | ISO 8859-9, ECMA 128 | Turco | Sim | Sim | 1 | ISO88599 |
LATIN6 | ISO 8859-10, ECMA 144 | Nórdico | Sim | Sim | 1 | ISO885910 |
LATIN7 | ISO 8859-13 | Báltico | Sim | Sim | 1 | ISO885913 |
LATIN8 | ISO 8859-14 | Céltico | Sim | Sim | 1 | ISO885914 |
LATIN9 | ISO 8859-15 | LATIN1 com Euro e acentos | Sim | Sim | 1 | ISO885915 |
LATIN10 | ISO 8859-16, ASRO SR 14111 | Romeno | Sim | Não | 1 | ISO885916 |
MULE_INTERNAL | Código interno MULE | Emacs multilíngue | Sim | Não | 1–4 | |
SJIS | Shift JIS | Japonês | Não | Não | 1–2 | Mskanji, ShiftJIS, WIN932, Windows932 |
SHIFT_JIS_2004 | Shift JIS, JIS X 0213 | Japonês | Não | Não | 1–2 | |
SQL_ASCII | não especificado (ver texto) | todos | Sim | Não | 1 | |
UHC | Código Hangul unificado | Coreano | Não | Não | 1–2 | WIN949, Windows949 |
UTF8 | Unicode, 8-bit | todos | Sim | Sim | 1–4 | Unicode |
WIN866 | Windows CP866 | Cirílico | Sim | Sim | 1 | ALT |
WIN874 | Windows CP874 | Thai | Sim | Não | 1 | |
WIN1250 | Windows CP1250 | Europa central | Sim | Sim | 1 | |
WIN1251 | Windows CP1251 | Cirílico | Sim | Sim | 1 | WIN |
WIN1252 | Windows CP1252 | Europa ocidental | Sim | Sim | 1 | |
WIN1253 | Windows CP1253 | Grego | Sim | Sim | 1 | |
WIN1254 | Windows CP1254 | Turco | Sim | Sim | 1 | |
WIN1255 | Windows CP1255 | Hebraico | Sim | Sim | 1 | |
WIN1256 | Windows CP1256 | Arábico | Sim | Sim | 1 | |
WIN1257 | Windows CP1257 | Báltico | Sim | Sim | 1 | |
WIN1258 | Windows CP1258 | Vietnamita | Sim | Sim | 1 | ABC, TCVN, TCVN5712, VSCII |
Nem todas as APIs cliente oferecem suporte
a todos os conjuntos de caracteres listados.
Por exemplo, o driver
JDBC do PostgreSQL
não oferece suporte a
MULE_INTERNAL, LATIN6,
LATIN8 e LATIN10.
A configuração SQL_ASCII se comporta de
maneira consideravelmente diferente das outras configurações.
Quando o conjunto de caracteres do servidor é
SQL_ASCII, o servidor interpreta os valores
de byte 0–127 segundo o padrão ASCII, enquanto os
valores de byte 128–255 são considerados caracteres não
interpretados.
Nenhuma conversão de codificação será feita quando a configuração
for SQL_ASCII.
Portanto, esta configuração não é tanto uma declaração de que uma
codificação específica está em uso, mas uma declaração de
ignorância sobre a codificação.
Geralmente, quando se está trabalhando com quaisquer dados
não-ASCII não é aconselhável usar a configuração
SQL_ASCII, porque o
PostgreSQL não poderá ajudar
convertendo ou validando dados contendo caracteres não-ASCII.
O utilitário initdb define o conjunto de
caracteres padrão (codificação) para uma instância do
PostgreSQL. Por exemplo,
initdb -E EUC_JP
define o conjunto de caracteres padrão como EUC_JP
(código Unix estendido para japonês).
Pode-se usar --encoding ao invés de
-E, se for preferido usar cadeias de caracteres
de opções mais longas.
Se nenhuma opção -E ou --encoding
for fornecida, o initdb tentará determinar a
codificação apropriada a ser usada com base na localidade
especificada ou a padrão.
Pode-se especificar uma codificação não-padrão no momento da criação do banco de dados, desde que a codificação seja compatível com a localidade selecionada:
createdb -E EUC_KR -T template0 \
--lc-collate=ko_KR.euckr \
--lc-ctype=ko_KR.euckr \
--owner=hlinnaka \
korean
Este comando irá criar um banco de dados chamado
korean, que usa o conjunto de caracteres
EUC_KR, e a localidade ko_KR.
Outra maneira de fazer isto é usando o seguinte comando
SQL:
CREATE DATABASE korean WITH
ENCODING 'EUC_KR'
LC_COLLATE='ko_KR.euckr'
LC_CTYPE='ko_KR.euckr'
TEMPLATE=template0
OWNER=hlinnaka;
Note-se que os comandos acima especificam a cópia do banco de dados
template0.
Ao copiar qualquer outro banco de dados, as configurações de
codificação e localidade não podem ser alteradas daquelas do banco
de dados de origem, porque isto pode resultar em dados corrompidos.
Para obter mais informações, veja
Bancos de dados modelo.
A codificação para o banco de dados fica armazenada no catálogo do
sistema pg_database.
Pode ser vista usando a opção -l do
psql, ou o meta-comando \l.
postgres=# \lx korean
Lista de bancos de dados -[ RECORD 1 ]----------+------------ Nome | korean Dono | hlinnaka Codificação | EUC_KR Provedor de localidade | libc Ordenação | ko_KR.euckr Ctype | ko_KR.euckr Locale | Regras ICU | Privilégios de acesso |
Na maioria dos sistemas operacionais modernos, o
PostgreSQL pode determinar qual
conjunto de caracteres está implícito na configuração de
LC_CTYPE, e irá forçar que apenas a codificação
correspondente do banco de dados seja usada.
Em sistemas mais antigos, é responsabilidade do usuário garantir
o uso da codificação esperada pela localidade selecionada.
Um erro nesta área levará provavelmente a um comportamento estranho
em operações dependentes da localidade, como a classificação.
O PostgreSQL permitirá que superusuários
criem bancos de dados com a codificação SQL_ASCII,
mesmo quando LC_CTYPE não for C
ou POSIX.
Conforme visto acima, o SQL_ASCII não impõe
que os dados armazenados no banco de dados tenham qualquer
codificação específica, portanto esta escolha apresenta riscos
de mau comportamento dependente de localidade.
O uso dessa combinação de configurações está em obsolescência,
podendo algum dia ser totalmente proibida.
O PostgreSQL fornece suporte à conversão automática de conjunto de caracteres entre servidor e cliente para muitas combinações de conjuntos de caracteres (Conversões de conjuntos de caracteres disponíveis mostra quais são elas).
Para ativar a conversão automática do conjunto de caracteres, deve-se informar ao PostgreSQL o conjunto de caracteres (codificação) que se gostaria que fosse usada no cliente. Existem várias maneiras disso ser feito:
Usando o meta-comando \encoding no
psql.
O meta-comando \encoding permite alterar
a codificação do cliente a qualquer momento.
Por exemplo, para alterar a codificação para
SJIS é usado:
\encoding SJIS
A libpq (Control Functions) tem funções para controlar a codificação do cliente.
Usando SET client_encoding TO.
A configuração da codificação do cliente pode ser feita usando
este comando SQL:
SET CLIENT_ENCODING TO 'codificação';
Além disso, pode ser usada a sintaxe do padrão
SQL SET NAMES
para esta finalidade:
SET NAMES 'codificação';
Para consultar a codificação corrente do cliente se usa:
SHOW client_encoding;
Para retornar à codificação padrão se usa:
RESET client_encoding;
Usando PGCLIENTENCODING.
Se a variável de ambiente PGCLIENTENCODING
estiver definida no ambiente do cliente, esta codificação
do cliente será selecionada automaticamente quando a conexão
com o servidor for estabelecida.
(Pode ser mudada depois usando qualquer um dos outros métodos
mencionados acima.)
Usando a variável de configuração
client_encoding.
Se a variável client_encoding estiver definida,
esta codificação do cliente será selecionada automaticamente
quando a conexão com o servidor for estabelecida.
(Pode ser mudada depois usando qualquer um dos outros métodos
mencionados acima.)
Se a conversão de um determinado caractere não for possível
— suponha que se escolheu EUC_JP para o
servidor, e LATIN1 para o cliente, e são
retornados alguns caracteres japoneses que não possuem
representação em LATIN1 —
então será relatado um erro.
Se o conjunto de caracteres do cliente estiver definido como
SQL_ASCII, a conversão de codificação será
desativada, independentemente do conjunto de caracteres do servidor.
(Entretanto, se o conjunto de caracteres do servidor não for
SQL_ASCII, o servidor ainda verificará se os
dados recebidos são válidos para esta codificação; então o
resultado final é como se o conjunto de caracteres do cliente
fosse o mesmo do servidor.)
Assim como para o servidor, o uso de SQL_ASCII
é pouco sensato, a menos que se esteja trabalhando com todos os
dados em ASCII.
O PostgreSQL permite a conversão entre quaisquer dois conjuntos de caracteres, para os quais uma função de conversão está listada no catálogo do sistema pg_conversion. O PostgreSQL vem com algumas conversões predefinidas, conforme resumido na Tabela 23.4, e mostrado com mais detalhes na Tabela 23.5. Pode-se criar uma nova conversão usando o comando SQL CREATE CONVERSION. (Para ser usada para conversões automáticas de cliente/servidor, a conversão deve ser marcada como “padrão” para seu par de conjuntos de caracteres.)
Tabela 23.4. Conversões de conjuntos de caracteres cliente/servidor integradas
| Conjunto de caracteres do servidor | Conjuntos de caracteres do cliente disponíveis |
|---|---|
BIG5 | sem suporte como codificação do 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 | sem suporte como codificação do servidor |
GBK | sem suporte como codificação do 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 | sem suporte como codificação do 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 to LATIN4,
SJIS,
WIN866,
WIN1250,
WIN1251
|
SJIS | sem suporte como codificação do servidor |
SHIFT_JIS_2004 | sem suporte como codificação do servidor |
SQL_ASCII | qualquer um (nenhuma conversão será realizada) |
UHC | sem suporte como codificação do servidor |
UTF8 | todas as codificações com suporte |
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
|
Tabela 23.5. Todas as conversões de conjuntos de caracteres integradas
| Nome da conversão [a] | Codificação da origem | Codificação do 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]
Os nomes de conversão seguem um esquema de nomenclatura padrão:
O nome oficial da codificação de origem com todos os
caracteres não alfanuméricos substituídos por sublinhados,
seguidos por | ||
Estas são boas fontes para começar a aprender sobre os vários tipos de sistemas de codificação.
Contém explicações detalhadas sobre EUC_JP,
EUC_CN, EUC_KR,
EUC_TW.
O site do Consórcio Unicode.
UTF-8 (formato de transformação UCS/Unicode de 8 bits) é definido aqui.