C# - 解码 AS/400 iSeries 中的数据

发布于 2024-07-16 08:53:06 字数 482 浏览 7 评论 0原文

我正在使用标准 .NET OdbcConnection 连接到 AS/400 iSeries 数据库。 我可以查询这个数据库。 不幸的是,有些字段似乎已被编码。 如何在 C# 中解码这些值? 我尝试过以下操作:

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

bytes 变量表示需要解码的数据。 不幸的是,我没有任何运气。 有人告诉我,如果我在 Windows 计算机上设置 ODBC 数据源并选中翻译选项卡中的“将二进制数据 (CCSID65535) 转换为文本”复选框,则数据将正确返回。 但是,我想使用纯 C#。 有任何想法吗? 我还差得远吗?

谢谢!

I am using the standard .NET OdbcConnection to connect to an AS/400 iSeries database. I am able to query this database. Unfortunately, there are some fields that appear to be encoded. How do I decode these values in C#? I have tried the following:

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

The bytes variable represents the data that needs to be decoded. Unfortunately, I am not having any luck. I have been told that the data will return correctly if I setup an ODBC data source on my Windows machine and check the "Convert binary data (CCSID65535) to text" checkbox in the translation tab. However, I want to use pure C#. Any ideas? Am I way off?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧情别恋 2024-07-23 08:53:06

很可能它正在使用 EBCDIC。 您可以尝试使用 Encoding.GetEncoding(37) 或者您可以使用我写的 EBCDIC 编码不久以前。

Chances are it's using EBCDIC. You could try using Encoding.GetEncoding(37) or you could use the EBCDIC encoding I wrote a while ago.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文