Verificação de compatibilidade com Unicode

Ao atualizar para uma versão Unicode, verifique se todas as lógicas personalizadas adicionadas aos scripts produzem os mesmos resultados quando executadas com dados Unicode. Há áreas em que os scripts podem ser afetados quando são executados com dados Unicode.

Funções de caracteres e bits

Cada uma das funções relacionadas a seguir retorna valores com base em locais de byte ou contagens de byte. Você precisa verificar as funções a seguir para assegurar que são usadas corretamente após a mudança da representação de caracteres de byte simples, usada na edição não Unicode, para a codificação de caracteres de byte duplo, usada em dados Unicode:

  • ASCII( )

  • BIT( )

  • BYTE( )

  • CHR( )

  • DIGIT( )

  • HEX( )

  • MASK( )

  • SHIFT( )

O comprimento do byte não é igual ao comprimento do caractere

Verifique a forma como as funções a seguir são utilizadas no script para garantir que elas não assumem correspondência de um para um entre o número de caracteres e o número de bytes nos dados.

Se forem encontrados casos em que a lógica assume a correspondência de igualdade entre número de caracteres e bytes, ajuste a lógica para trabalhar corretamente com os dados Unicode, que utilizam dois bytes para representar cada caractere. Números especificados como parâmetros de função de cadeia de caracteres, como 4 em STRING(1000, 4) referem-se ao número de caracteres, então o uso padrão dessas funções não causará problemas.

Funções de conversão

  • PACKED( )

  • STRING( )

  • UNSIGNED( )

  • VALUE( )

  • ZONED( )

Funções de cadeia

  • AT( )

  • BLANKS( )

  • INSERT( )

  • LAST( )

  • LENGTH( )

  • REPEAT( )

  • SUBSTRING( )

Funções diversas

  • FILESIZE( )

  • LEADING( )

  • OFFSET( )

  • RECLEN( )

Substituição de funções específicas para Unicode

Os produtos Unicode da Diligent aceitam seis funções específicas do Unicode que permitem conversões entre dados não Unicode e Unicode. As funções a seguir estão disponíveis nos produtos Unicode da Diligent:

  • BINTOSTR() converte dados ZONED ou EBCDIC em sua cadeia Unicode correspondente. Isso garante que os valores codificados como ZONED ou EBCDIC possam ser exibidos corretamente
  • DHEX( ) retorna o equivalente hexadecimal de um valor de campo Unicode especificado. É o inverso da função HTOU( )
  • DBYTE( ) retorna a interpretação do caractere Unicode de um byte duplo em uma posição determinada em um registro
  • DTOU( ) converte um valor de data para exibição de cadeia Unicode correta com base na configuração de local especificada
  • HTOU( ) devolve o equivalente Unicode de um valor de cadeia hexadecimal especificado. É o inverso da função DHEX( )
  • UTOD( ) converte uma cadeia Unicode específica de um local em um valor de data do Analytics