【问题标题】:Handling _bstr_t from byte array and back with C#处理字节数组中的 _bstr_t 并使用 C# 返回
【发布时间】:2012-01-14 17:03:15
【问题描述】:

我尝试解密给定文件,但存储的内容是使用 _bstr_t 类在 C++ 中完成的。我已经搜索了 2 个小时,测试了所有内容,但仍然没有得到正确的结果:将韩语 _bstr_t'd 字符读取为字符串。

这是读取的字节值:

B5 B8 BF F2 C3 BC

据我所知,应该是“Arial”之类的东西。 我试过使用Encoding.Unicode.GetString()、Encoding.UTF8.GetString()、Encoding.UTF7.GetString()、Encoding.UTF32.GetString()方法,都没有返回正确的韩语句子。

有谁知道如何将 _bstr_t'd 字符串转换为字节,在 C# 中可读?

【问题讨论】:

  • 您是否有权访问将文件写出的 C++ 代码?可以发一些吗?
  • 很遗憾,我无法访问 C++ 代码 :(.
  • 这不是韩文文本,您可能正在查看二进制数据。请联系编写该文件的代码的所有者以获得支持。

标签: c# encoding bstr-t


【解决方案1】:

使用Windows codepage for Korean 解码字节会产生您想要的输出吗?

var bytes = new byte[] { 0xB5, 0xB8, 0xBF, 0xF2, 0xC3, 0xBC };
var output = Encoding.GetEncoding(949).GetString(bytes);

【讨论】:

    猜你喜欢
    • 2018-05-02
    • 2013-03-03
    • 1970-01-01
    • 2012-04-22
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    相关资源
    最近更新 更多