Pergunta

Eu estou usando o padrão .NET OdbcConnection se conectar a um banco de dados AS / 400 iSeries. Eu sou capaz de consultar esta base de dados. Infelizmente, existem alguns campos que parecem ser codificado. Como faço para decodificar estes valores em C #? Eu tentei o seguinte:

string text = string.Empty;
if (bytes.Length > 0)
{
    ASCIIEncoding encoder = new ASCIIEncoding();
    text = encoder.GetString(bytes);
}
return text;

A variável de bytes representa os dados que precisam ser decodificados. Infelizmente, não estou tendo nenhuma sorte. Foi-me dito que os dados retornará corretamente se eu configurar uma fonte de dados ODBC na minha máquina Windows e marque a caixa "Converter dados binários (CCSID65535) para texto" na guia de tradução. No entanto, eu quero usar puro C #. Alguma ideia? Am I longe?

Obrigado!

Foi útil?

Solução

As possibilidades são que ele está usando EBCDIC. Você pode tentar usar Encoding.GetEncoding (37) ou você pode usar o EBCDIC codificação Escrevi há um tempo atrás.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top