C#Marshal.PtrToStringUni不返回unicode值

C#Marshal.PtrToStringUni不返回unicode值,c#,unicode,marshalling,C#,Unicode,Marshalling,我使用C#Marshal.PtrToStringUni(IntPtr)从SQLServer读取数据 它返回拉丁字符,但未正确提供Unicode字符。对于Unicode字符,我看到一些垃圾 我缺少一些转换?ANSI编码不是Unicode编码。请改用方法。请更新您的帖子以包含您的代码。您的意思是不是改为PtrToStringAnsi?拉丁编码字符串为8位,Unicode字符串为16位PtrToStringAnsi需要8位输入,PtrToStringUni需要16位输入。如果数据以8位的形式返回,则更

我使用C#Marshal.PtrToStringUni(IntPtr)从SQLServer读取数据 它返回拉丁字符,但未正确提供Unicode字符。对于Unicode字符,我看到一些垃圾
我缺少一些转换?

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

请更新您的帖子以包含您的代码。您的意思是不是改为
PtrToStringAnsi
?拉丁编码字符串为8位,Unicode字符串为16位
PtrToStringAnsi
需要8位输入,
PtrToStringUni
需要16位输入。如果数据以8位的形式返回,则更适合使用
PtrToStringAnsi