我在VB6中获得了代码,需要在C#中进行转换。我用谷歌搜索了它,但没有得到任何具体答案。
VB代码:
Dim strTemp = StrConv(strTemp , vbFromUnicode)
我试着在c#中这样做:
var strTemp = System.Runtime.InteropServices.Marshal.StringToBSTR(strTemp);
我认为这不正确。
有什么建议吗?什么是c#中上述vb6代码的正确插入。
答案 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);