C# - 解码 AS/400 iSeries 中的数据
我正在使用标准 .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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
很可能它正在使用 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.