NET是否等同于vbUnicode UTF32Encoding / UTF32Decoding?
答案 0 :(得分:5)
vbUnicode只是一个常数。它本身毫无意义。向我们展示一些代码。你想做什么?
您是否正在使用StrConv将ANSI字符串转换为UTF32?
newString = StrConv(ansiString, vbUnicode)
VB.Net等效项可能是Encoding.Default.GetString,因为Encoding.Default用于ANSI编码
newString = Text.Encoding.Default.GetString(ansiStringAsByteArray)
但它可能取决于您用于获取ANSI字符串的代码
答案 1 :(得分:3)
不确定您要找的是什么,但Encoding
类,特别是Encoding.UTF32Encoding
可能就是您所需要的。
答案 2 :(得分:0)
Encoding.Default
来自@MarkJ的答案对我有用,但我有点紧张,因为它似乎默认取决于你的语言环境。找到了显示如何明确指定字符集的KB 311338,并为西欧字符推荐了1252。所以转换马克的例子就是:
newString = System.Text.Encoding.GetEncoding(1252).GetString(ansiStringAsByteArray)
在我的美国英语系统中,它提供与Encoding.Default
相同的结果,但是无论语言环境如何,指定1252理论上应该给出相同的结果。
2016年1月18日更新
在下面看到@MarkJ的评论后,我做了一些研究,发现VB6 StrConv实际上确实使用默认语言环境,除非你指定一个。 (并且您只能指定一个LocaleID,例如1033表示美国英语,而不是ANSI代码页,例如1252表示西欧。)因此Encoding.Default
与没有LocaleID的StrConv
相近。 GetEncoding(1252)
增加了Mark的VB6示例中没有的特异性。