2017-03-09 38 views
-1

我使用C#Marshal.PtrToStringUni(IntPtr)從Sql Server讀取數據 它返回拉丁字符,但沒有正確地給出Unicode字符。對於Unicode字符,我看到一些垃圾 我錯過了一些轉換?C#Marshal.PtrToStringUni不返回Unicode值

+0

請更新您的帖子以納入您的代碼 –

回答

1

ANSI編碼不是Unicode。改用PtrToStringUni方法。

+0

您是不是指'PtrToStringAnsi'而不是?拉丁語編碼的字符串是8位,Unicode字符串是16位。 'PtrToStringAnsi'需要8位輸入,'PtrToStringUni'需要16位輸入。如果數據以8位的形式返回,那麼'PtrToStringAnsi'會更合適。 –