Vb.net VB6的vbUnicode在网络中的均衡?

Vb.net VB6的vbUnicode在网络中的均衡?,vb.net,vb6,vb6-migration,Vb.net,Vb6,Vb6 Migration,vbUnicode UTF32Encoding/UTF32Decoding的净等价物是吗?不确定您在寻找什么,但类,特别是可能是您所需要的。不确定您在寻找什么,但类,特别是可能是您所需要的。vbUnicode只是一个常量。它本身是没有意义的。给我们看一些代码。你想做什么 您正在用这样的方法将ANSI字符串转换为UTF32吗 newString = StrConv(ansiString, vbUnicode) 一个VB.Net等价物可能是因为它是用于ANSI编码的 newString = Te

vbUnicode UTF32Encoding/UTF32Decoding的净等价物是吗?

不确定您在寻找什么,但类,特别是可能是您所需要的。

不确定您在寻找什么,但类,特别是可能是您所需要的。

vbUnicode只是一个常量。它本身是没有意义的。给我们看一些代码。你想做什么

您正在用这样的方法将ANSI字符串转换为UTF32吗

newString = StrConv(ansiString, vbUnicode) 
一个VB.Net等价物可能是因为它是用于ANSI编码的

newString = Text.Encoding.Default.GetString(ansiStringAsByteArray) 

但这可能取决于用于获取ANSI字符串的代码。vbUnicode只是一个常量。它本身是没有意义的。给我们看一些代码。你想做什么

您正在用这样的方法将ANSI字符串转换为UTF32吗

newString = StrConv(ansiString, vbUnicode) 
一个VB.Net等价物可能是因为它是用于ANSI编码的

newString = Text.Encoding.Default.GetString(ansiStringAsByteArray) 
但这可能取决于您用来获取ANSI字符串编码的代码。@MarkJ的答案中的默认值对我来说很有效,但我有点紧张,因为默认值似乎取决于您的语言环境。找到显示如何显式指定字符集的KB,并建议西欧字符使用1252。所以转换马克的例子,就变成:

newString = System.Text.Encoding.GetEncoding(1252).GetString(ansiStringAsByteArray) 
在我的美国英语系统中,它给出了与Encoding.Default相同的结果,但是指定1252理论上应该给出相同的结果,而不管语言环境如何

更新日期:2016年1月18日

在看到@MarkJ下面的评论之后,我做了更多的研究,发现它实际上使用了默认的语言环境,除非您指定一个。您只能指定LocaleID,例如美国英语为1033,而不能指定ANSI代码页,例如西欧英语为1252。因此Encoding.Default更接近于没有LocaleID的StrConv。GetEncoding1252增加了Mark的VB6示例中没有的特殊性。

Encoding.Default(来自@MarkJ的答案)对我很有效,但我有点紧张,因为默认值似乎取决于您的区域设置。找到显示如何显式指定字符集的KB,并建议西欧字符使用1252。所以转换马克的例子,就变成:

newString = System.Text.Encoding.GetEncoding(1252).GetString(ansiStringAsByteArray) 
在我的美国英语系统中,它给出了与Encoding.Default相同的结果,但是指定1252理论上应该给出相同的结果,而不管语言环境如何

更新日期:2016年1月18日


在看到@MarkJ下面的评论之后,我做了更多的研究,发现它实际上使用了默认的语言环境,除非您指定一个。您只能指定LocaleID,例如美国英语为1033,而不能指定ANSI代码页,例如西欧英语为1252。因此Encoding.Default更接近于没有LocaleID的StrConv。GetEncoding1252增加了Mark的VB6示例中没有的特殊性。

很难知道是否有等效代码,因为您没有向我们展示如何在VB6中使用它的代码示例。很难知道是否有等效代码,因为您没有向我们展示如何在VB6中使用它的代码示例。如果看不到代码,一切都是猜测,但更可能的是OP需要。VB6中vbUnicode的一个常见用法是将Windows ANSI字符串转换为UTF-16,以将它们存储在VB6本机字符串中,该字符串应为UTF-16。看看我的答案。UTF-32不太可能在VB6中与vbUnicode结合使用。如果看不到代码,这完全是猜测,但OP更可能需要。VB6中vbUnicode的一个常见用法是将Windows ANSI字符串转换为UTF-16,以将它们存储在VB6本机字符串中,该字符串应为UTF-16。看看我的答案。UTF-32不太可能在VB6中与vbUnicode结合使用。没错,我只想指出,VB6转换将根据您的区域设置而有所不同,因此如果您正在寻找与VB6行为完全相同的行为(例如,如果您的用户在不同的区域设置中运行您的程序),则编码。默认值是最佳选择。在其他情况下,您可能需要指定区域设置。全部为true,我只需要注意VB6转换将根据您的区域设置而不同,因此如果您正在寻找与VB6行为完全相同的行为(例如,如果您的用户在不同的区域设置中运行您的程序),则需要进行编码。默认值是最佳选择。在其他情况下,可能需要指定区域设置。