Em 4D, a linguagem assim como o engine store do banco de dados e trabalha nativamente com caracteres Unicode. Esse princípio facilita a internacionalização das aplicações 4D. O Unicode é um código de caracteres padrão unificado o qual administra praticamente todas as linguagens utilizadas no mundo. Um conjunto de caracteres é uma tabela de correspondência caractere/valor numérico, exemplo “a”->1, “b”->2, “5”->15, “oe”->662, etc. Enquanto que com o ASCII, o valor numérico está geralmente numa faixa de 1 a 127, no Unicode o limite superior vai acima dos 65 000, o qual significa que pode representar quase todos os caracteres de todas as linguagens.
Há diferentes maneiras de codificar os valores numéricos Unicode: UTF-16 os codifica em inteiros de 16-bits, UTF-32 utiliza inteiros de 32-bits e o UTF-8 em inteiros de 8-bits. 4D utiliza principalmente UTF-16 (usados no Windows e Mac OS). Algumas vezes, essencialmente para necessidades específicas relacionadas com a internet, 4D utiliza o UTF-8 o qual tem a vantagem de ser mais compacto e ter uma melhor legibilidade para os caracteres comuns (a-z,0-9).
Nota: 4D internamente usa codificação UTF-16 para armazenar texto em campos e variáveis (mesmo se o banco de dados estiver rodando em modo não-Unicode). A não ser que mencionado especificamente, um caractere, posição ou tamanho manejado por linguagem de programação sempre se refere a valores em UTF-16.
Para mais informações a respeito do Unicode padrão, consulte a seguinte página:
http://en.wikipedia.org/wiki/Unicode
Uma lista de códigos em Unicode:
http://en.wikipedia.org/wiki/List_of_Unicode_characters#See_also
Atenção: no Unicode utilizado no 4D v11, os seguintes códigos de caracteres estão reservados e devem ser incluídos num texto:
0
65534 (FFFE)
65535 (FFFF)