如何转换vb6' vbFromUnicode'在C#中字符串

时间:2015-06-18 01:29:10

标签: c# .net vb6

我在VB6中获得了代码,需要在C#中进行转换。我用谷歌搜索了它,但没有得到任何具体答案。

VB代码:

Dim strTemp = StrConv(strTemp , vbFromUnicode)

我试着在c#中这样做:

var strTemp = System.Runtime.InteropServices.Marshal.StringToBSTR(strTemp); 

我认为这不正确。

有什么建议吗?什么是c#中上述vb6代码的正确插入。

1 个答案:

答案 0 :(得分:3)

这是系统默认代码页将Unicode字符串转换为Ansi字符串。

StrConv(strTemp , vbFromUnicode)

在C#中,您需要从当前文化中找到ANSICodePage的默认代码页

int codepage = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ANSICodePage;
byte[] convertedBytes = Encoding.GetEncoding(codepage).GetBytes(unicodeString);
string convertedAsciiString = System.Text.Encoding.ASCII.GetString(convertedBytes);