【问题标题】:C# Marshal.PtrToStringUni does not return unicode valuesC# Marshal.PtrToStringUni 不返回 unicode 值
【发布时间】:2017-03-09 21:12:05
【问题描述】:

我正在使用 C# Marshal.PtrToStringUni(IntPtr) 从 Sql Server 读取数据 它返回拉丁字符,但没有正确给出 Unicode 字符。对于 Unicode 字符,我看到一些垃圾 我错过了一些转换?

【问题讨论】:

  • 请更新您的帖子以包含您的代码

标签: c# unicode marshalling


【解决方案1】:

ANSI 编码不是 Unicode。请改用PtrToStringUni 方法。

【讨论】:

  • 你的意思不是PtrToStringAnsi吗?拉丁编码字符串为 8 位,Unicode 字符串为 16 位。 PtrToStringAnsi 需要 8 位输入,PtrToStringUni 需要 16 位输入。如果数据返回为8bit,PtrToStringAnsi会更合适。
猜你喜欢
  • 1970-01-01
  • 2013-04-15
  • 1970-01-01
  • 1970-01-01
  • 2017-08-12
  • 2013-08-19
  • 2016-04-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多